WPF工具包图表中具有相同Y轴的两个LineSeries

时间:2010-09-05 09:08:19

标签: charts wpftoolkit data-visualization

我想使用WPF工具包图表执行以下操作:

我有两个应该使用相同y轴的线系列(即我希望它们都在相同的比例上)。我可以为每个人提供相同的轴定义,以便它们重叠(然后让其中一个具有折叠的可见性),但这不是我的最佳选择。

这是我正在谈论的解决方案:

<charts:LineSeries Name="ExternalMeasureSeries"
               IndependentValueBinding="{Binding Time}"
               DependentValueBinding="{Binding ExternalMeasure}">
    <charts:LineSeries.DataPointStyle>
        <Style TargetType="charts:LineDataPoint">
            <Setter Property="Background" Value="Red"/>
            <Setter Property="Opacity" Value="0" />
        </Style>
    </charts:LineSeries.DataPointStyle>
    <!-- Vertical axis for external measure curve -->
    <charts:LineSeries.DependentRangeAxis>
        <charts:LinearAxis
            Orientation="Y"
            Title="Measurement"
            Minimum="0"
            Maximum="30"/>
    </charts:LineSeries.DependentRangeAxis>
</charts:LineSeries>
<charts:LineSeries Name="InternalMeasureSeries"
                   IndependentValueBinding="{Binding Time}"
                   DependentValueBinding="{Binding InternalMeasure}">
    <charts:LineSeries.DataPointStyle>
        <Style TargetType="charts:LineDataPoint">
            <Setter Property="Background" Value="Orange"/>
            <Setter Property="Opacity" Value="0" />
        </Style>
    </charts:LineSeries.DataPointStyle>
    <!-- Vertical axis for internal measure curve -->
    <charts:LineSeries.DependentRangeAxis>
        <charts:LinearAxis
            Orientation="Y"
            Minimum="0"
            Maximum="30"
            Visibility="Collapsed"/>
    </charts:LineSeries.DependentRangeAxis>
</charts:LineSeries>

有没有办法定义多个具有相同Y轴的系列?

我发现工具包版本3.5.0.0有一个名为StackedLineSeries但版本为3.5.40128.1的版本,它是在2010年2月版本的工具包中安装的,它不在那里。它移动到另一个clr-namespace?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并找到了以下方法。您可以将两个系列添加到同一个图表,并通过将宽度设置为0来隐藏第二个系列Axis标签;

<charts:LinearAxis
Orientation="Y"
Title="Measurement"
Minimum="0"
Maximum="30"
**Width = "0"**
/>

希望这有帮助

答案 1 :(得分:2)

我有一个包含3个系列的图表。前两个系列代表相对湿度,第三个代表露点。
我想在同一个Y轴上绘制前两个系列。我在资源部分创建了我的轴。在我的示例中,这是TabItem

<TabItem Header="rH">
<TabItem.Resources>
    <chartingToolkit:LinearAxis Orientation="Y" HorizontalAlignment="Left" Title="rH /%" x:Key="RHYAxis" />
    <chartingToolkit:LinearAxis Orientation="Y" HorizontalAlignment="Right"  Title="Dew point /°C" x:Key="DewPointYAxis" />
</TabItem.Resources>
<chartingToolkit:Chart HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Title="Relative Humidity" IsEnabled="True">
    <chartingToolkit:Chart.Series>
        <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource RHYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=RHCollection}" IndependentValuePath="TimeStamp" DependentValuePath="rH" Title="Measured rH" />
        <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource RHYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=CorrectedRHCollection}" IndependentValuePath="TimeStamp" DependentValuePath="CorrectedRH" Title="Corrected rH" />
        <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource DewPointYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=DewPointCollection}" IndependentValuePath="TimeStamp" DependentValuePath="DewPoint" Title="Dew point" />
    </chartingToolkit:Chart.Series>
</chartingToolkit:Chart>