2

我有一个 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,但是虽然这确实允许我定义图表区域的范围,但当曲线变得太大时缩放不会启动(所以它实际上是“脱离图表”)

如何实现?

4

1 回答 1

2

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

有两种方法可以解决这个问题:

  1. 是用 X=xValue, Y=double.NaN 预填充您的 FIFO DataSeries。给定足够的值,图表会认为它必须绘制所有这些点,因此 XAxis 将相应地缩放

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

FAQ ' How to create a StripChart in SciChart ' 演示了技术 (2),如何更新 XAxis 的可见范围以实现滚动行为。

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

于 2016-04-08T12:14:16.023 回答