2012-09-12 169 views
1

我正在使用.Net图表。我想在X轴上显示日期。例如:如果我选择最近52周,那么我应该显示过去52周的图表,而那些52周的开始日期应该在x轴上。我没有任何想法,该怎么办this..I曾与代码试图..X轴日期 - .Net图表

 DateTime Frm = sessionManager.ChartViewPeriodFrom; 
     DateTime To = sessionManager.ChartViewPeriodTo; 

     double min = Frm.ToOADate(); 
     double max = To.ToOADate(); 

     Chart1.ChartAreas["ChartArea1"].AxisX.Minimum = min; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Maximum = max; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Interval = 7; 

这里我得到了FRM为“2011/9/17 12:00:00 AM”不过,在图表中,最小日期从“9/21/2011 12:00:00 AM”开始。如何解决这个问题?

我曾试图这样也.. [编辑部分]

 Chart1.Series["Series1"].XValueType = ChartValueType.Date; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Minimum = (new DateTime(2011, 09, 17, 12, 00, 00)).ToOADate(); 
     Chart1.ChartAreas["ChartArea1"].AxisX.Maximum = (new DateTime(2012, 09, 08, 12, 00, 00)).ToOADate(); 
     Chart1.ChartAreas["ChartArea1"].AxisX.Interval = 7; 
     Chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false; 
+0

仍然我找到任何解决方案.. – RobinHood

+0

再次我无法重现您的问题,因为您的代码在我的设置上产生预期的结果。 – zeFrenchy

+0

任何其他解决方案..仍然是我得到同样的问题... – RobinHood

回答

2

经过长时间的搜寻后...我有固定的我上面的问题......但我仍然不知道它是如何工作的...

 Chart1.ChartAreas["ChartArea1"].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount; 
     Chart1.Series["Series1"].XValueType = ChartValueType.Date; 
     DayOfWeek ds = DayOfWeek.Wednesday; 
     double dblIntervalOffset = Convert.ToDouble(ds); 
     Chart1.ChartAreas["ChartArea1"].AxisX.IntervalOffset = dblIntervalOffset; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Minimum = min; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Maximum = max; 
     Chart1.ChartAreas["ChartArea1"].AxisX.Interval = 7; 
     Chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false; 
0

Indexed属性必须设置为系列数据。