改 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