c# - SciChart 具有最小轴范围的实时缩放

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

如何实现这一点?

最佳答案

原因是Fifo Example in sciChart WPF使用 XAxis AutoRange set to Always缩放轴以适合数据。当示例启动时,即使 Fifo 缓冲区的容量为 10,000 点,但其中没有数据,因此轴会缩小以容纳数据。

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

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

  2. 是自己控制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/

相关文章:

c# - 管理网格中的列跨度

c# - 如何在 XAML 中使用枚举类型?

c# - 同一 AppDomain 中的多个 WPF 应用程序

java - 如何使用android scicart创建倒计时圆形图表

ios - SciChart Xamarin.iOS : PointMarker Tap Event

c# - 服务与程序交互

c# - 过滤 IEnumerable 模式

c# - 读写二进制文件的最快方法

c# - 如何将窗口大小设置为0?

c# - 使用 C# 更改 SciChart 3D 工具提示中的标签