Изменить отображение метки в CategoryAxis - PullRequest
1 голос
/ 27 октября 2011

У меня есть диаграмма с ColumnSeries, и я пытаюсь сделать так, чтобы метки на оси X отображались рядом с отметками:

Goal

По умолчанию ColumnSeries использует ось CategoryAxis, которая размещает метки в середине интервала:

enter image description here

Я хочу, чтобы ось X работала аналогично LinearAxis. Однако я не вижу способа заставить ColumnSeries использовать LinearAxis.

Кроме того, я не вижу способа, как визуализировать метки для размещения рядом с галочками. Я могу пойти и изменить исходный код CategoryAxis, но это не так просто для меня.

Еще одна идея, которая у меня была, - использовать LinearAxis, но, похоже, не работает с ColumnSeries.

Любая идея высоко ценится.

Спасибо!

РЕДАКТИРОВАТЬ: 2011, 2012 являются лишь примерами, а не даты. То, что я пытаюсь сделать на самом деле, это отображать интервалы по оси X. 2011 должен начаться с начала. Я обновлю картинку.

1 Ответ

2 голосов
/ 27 октября 2011

A ColumnSeries работает правильно с LinearAxis.Вот пример, измененный из Delay's DataVisualizationDemos sample:

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 });
    }
}
...