【问题标题】:Telerik silverlight chart Unexpected date output for X-axis labelsTelerik silverlight 图表 X 轴标签的意外日期输出
【发布时间】:2011-12-06 13:45:34
【问题描述】:

因此,我将自定义业务对象列表绑定到 Rad 图表,例如,一年的月收入概览。我为 X 轴标签设置的日期根本没有呈现为我设置的日期。

这是我的基本代码,您可以看到获取给定年份的 monthLedger 对象列表。 monthLedger 对象具有不同的属性,但此方案的主要属性是 monthLedger.Full_datemonthLedger.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 || Revenue_Amount):

  • {01/01/2011 12:00:00 AM} || 0.00
  • {01/02/2011 上午 12: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} || 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
  • {01/10/2011 12:00:00 AM} || 0.00
  • {01/11/2011 12:00:00 AM} || 246.50
  • {01/12/2011 12:00:00 AM} || 311.60

我期望得到的是一个包含 12 个月的漂亮图表,但最终绘制了 13 列,并且标记的日期与我转换为 OLE 自动化日期的日期完全不同。

我附上了图形结果的屏幕截图:

我做错了什么?

【问题讨论】:

    标签: silverlight telerik radchart


    【解决方案1】:

    正如我从您的图片中看到的,图表以 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; 因为它不再需要了。

    干杯, 叶夫根尼亚

    【讨论】:

    • 谢谢!这正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多