我正在使用.Net 4中的MS圖表控件顯示4個數據系列,X軸設置爲日期時間類型。MS圖表控件上的日期時間類型X軸不顯示週末
將間隔設置爲包含週末的天數,即使數據中未包含週末日期。
除了一個系列以外,所有系列的日期點都是相同的,例外情況是投影線從最後一個日期開始並持續了若干個工作日(不包括週末)。
如何從所有系列的圖表中刪除顯示週末(或無價值的日期)?
這是一個winforms.net 4.0應用程序。
foreach (var series in chart2.Series)
{
series.ChartType = SeriesChartType.Line;
series.BorderWidth = 5;
series.XValueType = ChartValueType.Date;
// I Tried this to remove weekends but it results in the graph showing a big red X
series.IsXValueIndexed = true;
}
與編輯守則下重現我的問題:
DateTime dt = DateTime.Now;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;
Series test1 = new Series("Test1");
test1.XValueType = ChartValueType.Date;
for (int i = 1; i < 7; i++)
{
//skip the weekend
if (dt.DayOfWeek.ToString() == "Saturday") dt = dt.AddDays(1);
if (dt.DayOfWeek.ToString() == "Sunday") dt = dt.AddDays(1);
test1.Points.AddXY(dt.Date, i);
dt = dt.AddDays(1);
i++;
}
chart1.Series.Add(test1);
Series test2 = new Series("Test2");
test1.XValueType = ChartValueType.Date;
for (int i = 1; i < 7; i++)
{
//skip the weekend
if (dt.DayOfWeek.ToString() == "Saturday") dt = dt.AddDays(1);
if (dt.DayOfWeek.ToString() == "Sunday") dt = dt.AddDays(1);
test2.Points.AddXY(dt.Date, i);
dt = dt.AddDays(1);
i++;
}
chart1.Series.Add(test2);
foreach (var series in chart1.Series)
{
series.ChartType = SeriesChartType.Line;
series.BorderWidth = 5;
series.IsXValueIndexed=true;
}
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
嗨Taw,感謝您的回覆,我已經添加了上面的代碼來顯示我的問題!如果我註釋掉所有test2的東西,test1可以同時使用,我可以從上面得到紅色的X. 我需要爲這兩個系列的測試1和測試2的所有日期添加一個空數據點嗎? – Adrian
是的,也就是說,如果你實際上__wanted__在不重置兩個系列之間繼續計數'dt' ..! – TaW
是的,這只是一個真實的例子,我繪製了一個序列,然後添加了一個可以延長線條的投影。 我怎麼說增加所有的空數據點,因爲它們超出了test2的開始,並在test1結束之後? 你能告訴我我該怎麼做嗎? – Adrian