动态数据显示多轴缩放

Dynamic-Data-Display multiple axes scaling

我有一个带有海图仪的 MVVM wpf 应用程序。我有 2 个垂直轴和 2 个图表(例如一张图表上随时间变化的电流和电压)。

<d3:ChartPlotter>
        <d3:ChartPlotter.Children>
            <d3:VerticalIntegerAxis/>
            <d3:LineGraph DataSource="{Binding GraphOneDataSource}" Stroke="Blue"/>
            <d3:LineGraph DataSource="{Binding GraphTwoDataSource}" Stroke="Red"/>
        </d3:ChartPlotter.Children>
    </d3:ChartPlotter>

这两张图的比例不同。我通过像这样调整他的映射,使一个图可以与另一个一起缩放

GraphTwoDataSource.SetXYMapping(p=>new Point(p.X+1,((p.Y)*(GraphOneMax-GraphOneMin)/(GraphTwoMax-GraphTwoMin))));

这些图相互成比例。第一个图表的值是从 1000 到 5000,第二个图表的值是 10-50。

我需要相应地调整海图仪的第二个垂直轴。如何更改轴刻度生成的行为,使其与第一个轴的缩放方式与图形相互缩放的方式相同?

如所述here and here you can use InjectedPlotter . here我找到了一个例子。

使用 "Future of D3" 库中引入的 DependentPlotter 控件解决了这个问题