我有一个 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
,但是虽然这确实允许我定义图表区域的范围,但当曲线变得太大时缩放不会启动(所以它实际上“脱离图表”)
如何实现这一点?
最佳答案
原因是Fifo Example in sciChart WPF使用 XAxis AutoRange set to Always缩放轴以适合数据。当示例启动时,即使 Fifo 缓冲区的容量为 10,000 点,但其中没有数据,因此轴会缩小以容纳数据。
有两种方法可以解决这个问题:
是用 X=xValue, Y=double.NaN 预填充您的 FIFO DataSeries。给定足够的值,图表将认为它必须绘制所有这些点,以便 XAxis 相应缩放
是自己控制XAxis.VisibleRange(不要使用AutoRange)。在这种情况下,您需要将 XAxis.VisibleRange 设置为窗口大小以容纳 N 个点,并在更新数据时更新窗口。
常见问题解答'How to create a StripChart in SciChart ' 演示了技术 (2),如何更新 XAxis 的可见范围以实现滚动行为。
披露,我是 SciChart WPF 团队的技术主管
关于c# - SciChart 具有最小轴范围的实时缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481624/