Я использую элементы управления Telerik RadChart для Silverlight с Silverlight 4.0. У меня возникла проблема из-за различий в моих наборах данных, из-за которых мои большие столбцы сгруппированы в ChartArea. Нет проблем, подумал я, я могу просто просмотреть все свои данные и найти максимальный размер, который должен иметь мой StackedBar, и настроить масштаб оси Y. Вот метод, который я выбрал для реализации.
private void ForceScaleOfYaxis(IEnumerable<ChartObject> chartData)
{
double sum = 0;
foreach (var bar in chartData)
{
sum = Math.Max(sum, bar.Series1 +
bar.Series2 +
bar.Series3 +
bar.Series4 +
bar.Series5);
}
ChartArea chartArea = radChart1.DefaultView.ChartArea;
chartArea.AxisY.AutoRange = true;
double min = chartArea.AxisY.ActualMinValue;
double step = sum / 10;
chartArea.AxisY.AutoRange = false;
chartArea.AxisY.AddRange(min, sum, step);
}
Это сработало достаточно хорошо, так как изменило ось Y, чтобы оно стало равным наибольшей сумме значений ряда для столбца с накоплением.
Теперь у меня другая проблема: я правильно установил масштаб оси Y, но графики не отображаются в стеке.
Это можно увидеть на следующем графике, как показано на снимке экрана.