Telerik silverlight chart Неожиданный вывод даты для меток оси X - PullRequest
1 голос
/ 06 декабря 2011

Итак, я привязываю список пользовательских бизнес-объектов к диаграмме Rad, для этого примера - обзор ежемесячного дохода за год. Даты, которые я устанавливаю для метки оси X, не отображаются так, как я их установил.

Вот мой основной код, вы можете видеть, что получите список monthLedger объектов за данный год. Объект monthLedger имеет различные свойства, но основными для этого сценария являются monthLedger.Full_date и monthLedger.Revenue_Amount .

List<monthLedger> year = getYearRevenueByMonth(2011);

DataSeries ser = new DataSeries();

foreach(monthLedger month in year)
{
    ser.Add(new DataPoint 
            { 
                YValue = Convert.ToDouble(month.Revenue_Amount), 
                Label = month.Revenue_Amount.ToString("0.00###"), 
                XValue = month.Full_Date.ToOADate()
            });
}


radChart1.DefaultView.ChartArea.AxisX.IsDateTime = true;
radChart1.DefaultView.ChartArea.AxisX.AutoRange = true;
radChart1.DefaultView.ChartArea.AxisX.DefaultLabelFormat = "dd-MMM";
radChart1.DefaultView.ChartArea.DataSeries.Add(ser);

Вот данные, которые я бы получил в списке за 2011 год (Full_Date || Доход_Аммера):

  • {01.01.2011, 00:00:00} || 0,00
  • {02.01.2011, 00:00:00} || 0,00
  • {01/03/2011 12:00:00 AM} || 0,00
  • {01/04/2011 12:00:00 AM} || 0,00
  • {01/05/2011 12:00:00 AM} || 0,00
  • {01/06/2011 12:00:00 AM} || 0,00
  • {01/07/2011 12:00:00 AM} || 0,00
  • {01/08/2011 12:00:00 AM} || 0,00
  • {01/09/2011 12:00:00 AM} || 0,00
  • {10.10.2011, 00:00:00} || 0,00
  • {01.11.2011, 00:00:00} || 246,50
  • {12.01.2011, 00:00:00} || 311,60

То, что я ожидаю получить, - это хороший график с 12 месяцами, но в итоге будут построены 13 столбцов, а даты, помеченные как метки, совсем не совпадают с теми, которые я преобразовал в OLE Automation Date.

Я прикрепил скриншот графического результата: enter image description here

Что я делаю не так?

1 Ответ

2 голосов
/ 08 января 2012

Как я вижу из вашего изображения, график строит столбцы с шагом 30 дней. Это вызвано автоматическим диапазоном XAxis. Поскольку диаграмма не может определить пунктуальный шаг в 1 месяц (в месяцах разное количество дней), XAxis автоматически определил, что 30 дней являются наиболее подходящими. Установка диапазона вручную не поможет, поэтому я предлагаю вам использовать XCategory вместо XValue:

foreach(monthLedger month in year) 
   { 
    ser.Add(new DataPoint  
            {  
                YValue = Convert.ToDouble(month.Revenue_Amount),  
                Label = month.Revenue_Amount.ToString("0.00###"),  
                XCategory = month.Full_Date
            }); 
   } 

Вы можете удалить это - radChart1.DefaultView.ChartArea.AxisX.IsDateTime = true; так как больше не нужен.

Cheers, Evgenia

...