在CategoryAxis中更改标签呈现

时间:2011-10-26 20:29:58

标签: wpf silverlight charts wpftoolkit silverlight-toolkit

我有一个包含ColumnSeries的图表,我试图让X轴上的标签显示在这样的刻度线附近:

Goal

默认情况下,ColumnSeries使用CategoryAxis轴,它将标签置于间隔的中间位置:

enter image description here

我想要的是X轴的工作方式类似于LinearAxis。但是我没有看到任何使ColumnSeries使用LinearAxis的方法。

另外,我认为如何将标签放置在刻度线附近。我可以去修改CategoryAxis的源代码,但这对我来说并不容易。

我的另一个想法是使用LinearAxis,但似乎不适用于ColumnSeries。

非常感谢任何想法。

谢谢!

编辑:2011年,2012年只是例子,它们不是日期。我实际上要做的是在X轴上显示间隔。 2011年应该从起源开始。我会更新图片。

1 个答案:

答案 0 :(得分:2)

ColumnSeriesLinearAxis一起正常运行。以下是从Delay的DataVisualizationDemos示例中修改的示例:

enter image description here

XAML:

<chartingToolkit:Chart Title="Stock Performance">
    <!-- Stock price and volume -->
    <chartingToolkit:ColumnSeries
        Title="ABCD"
        ItemsSource="{StaticResource SalesDataCollection}"
        IndependentValueBinding="{Binding EastStoreQuantity}"
        DependentValueBinding="{Binding WestStoreQuantity}"
        />
    <chartingToolkit:Chart.Axes>
        <!-- Axis for custom labels -->
        <chartingToolkit:LinearAxis
            Minimum="0"
            Maximum="10"
            Interval="1"
            Orientation="X">
        </chartingToolkit:LinearAxis>
    </chartingToolkit:Chart.Axes>
</chartingToolkit:Chart>

代码隐藏:

public class SalesDataCollection : Collection<SalesData>
{
    public SalesDataCollection()
    {
        Add(new SalesData { Animal = "Dogs", WestStoreQuantity = 5, EastStoreQuantity = 7 });
        Add(new SalesData { Animal = "Cats", WestStoreQuantity = 5, EastStoreQuantity = 6 });
        Add(new SalesData { Animal = "Birds", WestStoreQuantity = 3, EastStoreQuantity = 8 });
        Add(new SalesData { Animal = "Fish", WestStoreQuantity = 6, EastStoreQuantity = 9 });
    }
}