在过去的一周里,我读了很多材料并尝试了很多东西,但我并没有随处可见。
我有一个主窗口MainWindowView
,其中包含如下定义的复选框:
<CheckBox IsChecked="{Binding Path=ocv_checkbox, Mode=TwoWay}" Margin="0, 0, 0, 2" Content="OCV"/>
<CheckBox IsChecked="{Binding Path=battery_temperature_checkbox, Mode=TwoWay}" Margin="0, 0, 0, 2" Content="Battery Temperture"/>
<CheckBox IsChecked="{Binding Path=slope_checkbox, Mode=TwoWay}" Margin="0, 0, 0, 2" Content="Slope"/>
根据选中的框,我想在用户点击Button
时在图表上绘制一条线。 我想要相同图表上的所有行。
问题在于,根据单击的框,我可能需要一个额外的轴来绘制。例如,如果我有3个复选框1 2和3.数字1和2的单位为英寸,复选框3的单位为加仑。如果检查了所有3个,我将需要左侧(或右侧)的英寸垂直轴和右侧的加仑轴(图3)。
如何使用D3以编程方式执行此操作?根本没有太多的文档,我需要在网上看到一个明确的答案。
目前我有:
<d3:ChartPlotter Name="plotter" Margin="10,10,20,10">
<d3:ChartPlotter.HorizontalAxis>
<d3:HorizontalIntegerAxis Name="dateAxis"/>
</d3:ChartPlotter.HorizontalAxis>
<d3:ChartPlotter.VerticalAxis>
<d3:VerticalIntegerAxis Name="countAxis"/>
</d3:ChartPlotter.VerticalAxis>
<d3:Header FontFamily="Arial" Content="{Binding ElementName=ThisGraphWindowInstance, Path=title}"/>
<d3:VerticalAxisTitle FontFamily="Arial" Content="{Binding ElementName=ThisGraphWindowInstance, Path=yAxis}"/>
<d3:HorizontalAxisTitle FontFamily="Arial" Content="{Binding ElementName=ThisGraphWindowInstance, Path=xAxis}"/>
</d3:ChartPlotter>
在我的GraphWindowView.xaml
中,显然只有2个轴。如果可能,我想使用后面的代码添加一个。
谢谢你, 富
答案 0 :(得分:0)
如果要添加多个Y轴,请转到 InjectedPlotter 对象。 Foreach类型的数据(英寸,加仑......),您将需要一个InjectedPlotter作为子项添加到 chartplotter 。当禁用一种数据的所有行(未选中复选框)时,只需隐藏注入的绘图仪。您必须使用正确的轴(注入绘图仪)链接每条线。