Telerik silverlight图表X轴标签的意外日期输出
因此,我将自定义业务对象列表绑定到Rad图表,例如,一年的月度收入概览。我正在为X轴标签设置的日期根本没有呈现为我所设置的日期 这是我的基本代码,您可以看到它可以获取给定年份的monthLedger对象列表。monthLedger对象具有不同的属性,但此场景的主要属性是monthLedger.Full_date和monthLedger.Revenue_AmountTelerik silverlight图表X轴标签的意外日期输出,silverlight,telerik,radchart,Silverlight,Telerik,Radchart,因此,我将自定义业务对象列表绑定到Rad图表,例如,一年的月度收入概览。我正在为X轴标签设置的日期根本没有呈现为我所设置的日期 这是我的基本代码,您可以看到它可以获取给定年份的monthLedger对象列表。monthLedger对象具有不同的属性,但此场景的主要属性是monthLedger.Full_date和monthLedger.Revenue_Amount List<monthLedger> year = getYearRevenueByMonth(2011); DataS
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);
List year=getYearRevenueByMonth(2011年);
DataSeries ser=newdataseries();
foreach(一年中的monthLedger月)
{
服务添加(新数据点)
{
Y值=换算成双倍(月收入\金额),
Label=月收入金额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年列表中获得的数据(完整日期|收入|金额):
- {01/01/2011 12:00:00 AM}| | 0.00
- {01/02/2011 12:00:00 AM}| | 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
- {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
我做错了什么?从您的图像中可以看出,图表以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.axix.IsDateTime=true;
因为它不再需要了
干杯,
叶甫盖尼亚谢谢!这正是我需要的!