SciChart实时缩放最小轴范围



我有一个SciChart图的FIFO实时图(几乎取自他们发布的示例)。当它渲染时,它开始完全缩小,非常靠近,当绘制线时,它会缩小以适应线的完整大小。

        <s:SciChartSurface.XAxis>
            <s:NumericAxis x:Name="axisX" MinHeight="50" AutoRange="Always" AxisTitle="{Binding Path=XAxisTitle}" DrawMinorGridLines="False" DrawMinorTicks="False" TextFormatting="0.##">
                <s:NumericAxis.GrowBy>
                    <s:DoubleRange Max="0.1" Min="0.1" />
                </s:NumericAxis.GrowBy>
            </s:NumericAxis>
        </s:SciChartSurface.XAxis>

然而,我希望它已经开始缩小一定的量——例如,X轴已经从0-10开始显示,当画线时,它会在屏幕上移动,只有当线碰巧变得比提供的空间大时才会缩放。

我尝试过设置VisibleRangeLimit,但虽然这确实允许我定义图表区域的范围,但当曲线变得太大时(因此它实际上会"脱离图表")不会启动缩放

如何才能做到这一点?

原因是sciChart WPF中的Fifo示例使用设置为"始终"的XAxis AutoRange来缩放轴以适应数据。当该示例开始时,即使Fifo缓冲区的容量为10000点,但其中也没有数据,因此轴会缩小以容纳数据。

有两种方法:

  1. 是用X=xValue,Y=double.NaN预先填充FIFO数据系列。给定足够的值,图表会认为它必须绘制所有这些点,这样X轴就会相应地缩放

  2. 是要控制XAxis.VisibleRange自己(不要使用AutoRange)。在这种情况下,需要将XAxis.VisibleRange设置为可容纳N个点的窗口大小,并在更新数据时更新窗口。

常见问题解答"如何在SciChart中创建条纹图"演示了技术(2),如何更新X轴的可见范围以实现滚动行为。

披露,我是SciChart WPF团队的技术负责人

最新更新