DataTable轉Array,使用套件畫圖。
相關介紹網頁 http://www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET
作品圖
private void Form1_Load(object sender, EventArgs e)
{
zedGraphControl1.GraphPane.Title.Text = "Title"; //圖表的表頭
zedGraphControl1.GraphPane.XAxis.Title.Text = " "; //X軸的名稱
zedGraphControl1.GraphPane.YAxis.Title.Text = " "; //Y軸的名稱
#region 準備預設顯示資料
DataSet ds = new DataSet();
DataTable dt = new DataTable("matr");
dt.Columns.Add("id", typeof(string)).ReadOnly = true;
dt.Columns.Add("val", typeof(string));
dt.Columns["id"].AutoIncrement = true;
DataRow dr1 = dt.NewRow();
dr1["id"] = "2001";
dr1["val"] = "5";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["id"] = "2002";
dr2["val"] = "3";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["id"] = "2003";
dr3["val"] = "9";
dt.Rows.Add(dr3);
DataRow dr4 = dt.NewRow();
dr4["id"] = "2007";
dr4["val"] = "7";
dt.Rows.Add(dr4);
ds.Tables.Add(dt);
BindingSource bs = new BindingSource(ds, "matr");
ds.Tables["matr"].Rows[2]["val"] = "6"; //改值
dataGridView.DataSource = bs;
#endregion
#region DataTable轉Array
GraphPane myPane = zedGraphControl1.GraphPane;
zedGraphControl1.GraphPane.CurveList.Clear(); //把舊的圖資清掉
int i = ds.Tables["matr"].Rows.Count;
string[] xTitle = new string[i];
double[] Aval = new double[i];
for (int k = 0; k < i; k++)
{
xTitle[k] = Convert.ToString(ds.Tables["matr"].Rows[k]["id"]);
Aval[k] = Convert.ToDouble(ds.Tables["matr"].Rows[k]["val"]);
}
#endregion
LineItem myCurve;
#region 折線圖
myCurve = myPane.AddCurve("", null, Aval, Color.Purple);
//myCurve.Line.Fill = new Fill(Color.Purple, Color.White, Color.Purple);
#endregion
// 開始X軸坐標設置
myPane.XAxis.Scale.TextLabels = xTitle;
myPane.XAxis.Type = AxisType.Text;
// 設置Y軸坐標的範圍
myPane.YAxis.Scale.Min = 0;
myPane.YAxis.Scale.Max = 10;
myPane.YAxis.Scale.MajorStep = 1;
//底圖色
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 90F);
myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
zedGraphControl1.AxisChange();
zedGraphControl1.Refresh();
}