由於工作單位裡面老舊電腦比較多(還有一些是 Windows 2000)
所以 Net.Framework 只能使用到 2.0 版本。
需求是 必須產生即時線圖,比較過幾種開源控件,最終採用 ZedGraph
完整專案下載
使用效果
//首先要加入參考 ZedGraph
GraphPane myPane = null;
myPane = zg1.GraphPane;
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
//資料來源 處理
int[] x = { 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
int[] y = { 100, 50, 20, 70, 20, 100, 50, 20, 70, 20, 100, 50, 20, 70, 20, 100, 50, 20, 70, 20, 100, 50, 20, 70};
//資料填充
PointPairList list = new PointPairList();
list.Clear();
for (int i = 0; i < x.Length; i++)
{
list.Add(x[i], y[i]);
}
//圖形建立
BarItem myCurve = myPane.AddBar("作業 OK品 實積", list, Color.Blue); //建立長條圖
//BarItem.CreateBarLabels(myPane, false, "f0"); //每個長條圖 都顯示個別數據
//介面屬性處理
myPane.Title.IsVisible = false; //主標題是否 顯示
//myPane.Title.Text = "Emp"; //主標題
myPane.Title.FontSpec.FontColor = Color.Green;
myPane.XAxis.Title.IsVisible = false; //X軸 是否顯示 title
//myPane.XAxis.Title.Text = "Hr"; //X 軸 Title
//myPane.XAxis.Title.FontSpec.Size = 40; //X 軸 Title 文字Size
string[] xx = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23" };
myPane.XAxis.Scale.TextLabels = xx; //X軸刻度資料來源
myPane.XAxis.Type = AxisType.Text; //X軸刻度資料型態
myPane.XAxis.Scale.FontSpec.Size = 25;
//myPane.XAxis.MajorGrid.IsVisible = true; //顯示格點
//myPane.XAxis.MajorGrid.Color = Color.Pink; //格點顏色
myPane.YAxis.Title.Text = "Pcs"; //Y 軸的 Title
myPane.YAxis.Title.FontSpec.Size = 25;
myPane.YAxis.Scale.FontSpec.Size = 25;
myPane.YAxis.MajorGrid.IsVisible = true;
myPane.YAxis.MajorGrid.Color = Color.Black;
//myPane.YAxis.Scale.MajorStep = 10; //Y軸資料 間隔
//myPane.YAxis.Scale.Max = 120; //Y軸 最大值
myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, -45F); //Chart 填色
myPane.Fill = new Fill(Color.White, Color.FromArgb(220, 220, 255), -45F); //外部 填色
myPane.Legend.Position = ZedGraph.LegendPos.InsideTopRight; //圖例放置位置
myPane.Legend.FontSpec.Size = 20;
//畫面產生
zg1.AxisChange();
//重要! 若資料有變更時 畫面重整
zg1.RestoreScale(myPane);
#相關網站:
1.)
Think專欄 介紹一些常用函數。
2.)
oayx 一些使用說明及資源。
3.)
Codeproject 開源Project