改 Legend 属性就可以了,只要简单加一个 item 就行了.
坐标则是 ChartArea 控制
都好难找.
--------------------------------------------------
http://www.dotblogs.com.tw/joo3360/archive/2010/10/05/18127.aspx
這次接到客戶要求說,要顯示各機台狀況以及顯示機台與站點間X軸Group的顯示,而每個機台又必須區分顏色出來。
沒寫過,所以研究了一下MS Chart如何運用。
然後發現ChartType必須使用SeriesChartType.StackedColumn,才能達到一個X軸刻度來重疊Series來顯示(這個我找好久,果然不熟MS Chart,物件太多了)
下圖是這次運用到作法Sample Chart。
Step.1 必須先動態建立好Series至Chart物件中
02 |
for (int i = 0; i < 8; i++)
|
04 |
Series series = new Series("DATA" + i.ToString());
|
05 |
series.Color = Color.FromArgb(rnd.Next() % (255 - 0 + 1) + 0,
|
06 |
rnd.Next() % (255 - 0 + 1) + 0,
|
07 |
rnd.Next() % (255 - 0 + 1) + 0);
|
09 |
series.ChartType = SeriesChartType.StackedColumn;
|
10 |
this.Chart1.Series.Add(series);
|
Step.2 再將各個Series加入資訊。
*注意:因為假設一筆資料都要區分不同顏色必須各自填入各自的Series。
02 |
for (int i = 0; i < Chart1.Series.Count; i++)
|
04 |
for (int j = 0; j < Chart1.Series.Count; j++)
|
08 |
Chart1.Series[i].Points.AddXY(i.ToString(), i * 5);
|
12 |
Chart1.Series[i].Points.AddY(0);
|
Step.3 再動態加作客製化的X軸。
2 |
Chart1.ChartAreas[0].AxisX.CustomLabels.Add(0.5, 4.5, "A", 1, LabelMarkStyle.LineSideMark);
|
3 |
Chart1.ChartAreas[0].AxisX.CustomLabels.Add(4.5, 8.5, "B", 1, LabelMarkStyle.LineSideMark);
|
Step.4 加入Legend,顯示右方Series資訊列
2 |
Legend legend = new Legend("TEST Legend");
|
3 |
legend.Docking = Docking.Right;
|
4 |
legend.Alignment = System.Drawing.StringAlignment.Center;
|
5 |
Chart1.Legends.Add(legend);
|
以上就完成上列Sample Chart