动态数据显示多轴缩放
Posted
技术标签:
【中文标题】动态数据显示多轴缩放【英文标题】:Dynamic-Data-Display multiple axes scaling 【发布时间】:2017-02-21 12:37:36 【问题描述】:我有一个带有海图仪的 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>
这 2 个图表的缩放比例不同。我通过像这样调整他的映射,使一个图表与另一个图表可扩展
GraphTwoDataSource.SetXYMapping(p=>new Point(p.X+1,((p.Y)*(GraphOneMax-GraphOneMin)/(GraphTwoMax-GraphTwoMin))));
图表相互缩放。第一个图的值是从 1000 到 5000,第二个的值是 10-50。
我需要相应地调整海图仪的第二个垂直轴。如何更改轴刻度生成的行为,使其与第一个轴的缩放方式与图形彼此缩放的方式相同?
【问题讨论】:
【参考方案1】:如here 和here 所述,您可以使用 InjectedPlotter 。 here我找到了一个例子。
【讨论】:
正如我所说,我已经有多个轴。链接和示例显示了如何添加多个轴,而不是如何更改它们的行为。在示例中,刻度是硬编码的,而且控件也发生了相当大的变化【参考方案2】:使用“D3 的未来”库中引入的 DependentPlotter 控件解决了这个问题
【讨论】:
以上是关于动态数据显示多轴缩放的主要内容,如果未能解决你的问题,请参考以下文章