WPF图表:在Y轴上垂直显示文本

时间:2013-09-11 07:36:47

标签: c# wpf charts wpftoolkit

在我的图表中,我希望在Y轴之前显示文本作为y轴中心的垂直标题,如“%Volume”,在中心的X轴下方,希望将标签显示为“Sales”。如何在X& amp; Y轴分别?我的XML代码是:

Grid>
    <DVC:Chart Name="bsiPlaceChart" Title="SI Placement" LegendTitle="Legend" Width="850" Height="450">
        <DVC:Chart.Series>
            <DVC:ColumnSeries Name="layer1Chart" Title="Title 1" ItemsSource="{Binding}" IndependentValuePath="Name"
                           DependentValuePath="Volume"></DVC:ColumnSeries>

            <DVC:ColumnSeries Name="layer2Chart" Title="Title 2" ItemsSource="{Binding}" IndependentValuePath="Name"
                           DependentValuePath="Volume" ></DVC:ColumnSeries>

            <DVC:ColumnSeries Name="layer3Chart" Title="Title 3" ItemsSource="{Binding}" IndependentValuePath="Name"
                           DependentValuePath="Volume" ></DVC:ColumnSeries>
        </DVC:Chart.Series>
    </DVC:Chart>
    <TextBlock HorizontalAlignment="Center" Text="Layers" FontSize="12" FontWeight="Bold" Margin="343,440,472,0" />

</Grid>

对于X轴,我尝试在图表下方添加一个文本块,但是当窗口大小改变时,文本也会上下移动。我希望它保持在图表下方 - 好像它是图表的一部分。

如何为X&amp; S设置此类标题? Y轴分别为。

更新: 解决方案由Paul提供: 我在参考资料中添加了X&amp; Y轴分别为:

<Grid.Resources>
    <DVC:LinearAxis Orientation="Y" Title="% Volume" HorizontalAlignment="Left" x:Key="YAxis" />
    <DVC:LinearAxis Orientation="X" Title="Layers" HorizontalAlignment="Center" x:Key="XAxis" />
</Grid.Resources>

并在每个列系列修改如下:

<DVC:ColumnSeries Name="layer1Chart" Title="Viscosity 1" ItemsSource="{Binding}" IndependentValuePath="Name" DependentValuePath="Volume" DependentRangeAxis="{StaticResource YAxis}">
</DVC:ColumnSeries>

这管理了Y轴点。如何添加XAxis呢?

解决方案: 删除了资源并在Chart中添加了Chart.Axes,如下所示。这会在Y轴左侧添加“%Volume”标签,在X轴底部添加“Layers”标签。完美。

 <!-- Add Title on Y axis and X Axis -->
 <DVC:Chart.Axes>
       <DVC:LinearAxis Orientation="Y" Title="% Volume" HorizontalAlignment="Left" />
       <DVC:CategoryAxis Orientation="X" Title="Layers" Location="Bottom" />
</DVC:Chart.Axes>

谢谢保罗。

1 个答案:

答案 0 :(得分:2)

以下内容应该这样做:

<charting:LineSeries.DependentRangeAxis>
    <charting:LinearAxis Orientation="Y"  Title="Y Axis"/>
</charting:LineSeries.DependentRangeAxis>

阅读this SO post和其他SO post

编辑:取自this SO post,设置x和y轴,执行以下操作

<charting:Chart.Axes>
  <charting:LinearAxis Orientation="Y">
     <charting:LinearAxis.Title>
          <ContentControl ContentTemplate="{StaticResource YAxisTitleContentTemplate}"/>
     </charting:LinearAxis.Title>
  </charting:LinearAxis>
  <charting:CategoryAxis Orientation="X">
       <charting:CategoryAxis.Title>
           <ContentControl ContentTemplate="{StaticResource XAxisTitleContentTemplate}"/>
       </charting:CategoryAxis.Title>
  </charting:CategoryAxis>
</charting:Chart.Axes>

仅适用于X轴:

<charting:Chart.Axes>
   <charting:CategoryAxis Orientation="X" Title="The X Axis Title" />
</charting:Chart.Axes>