//記得要加入參考
using ZedGraph;
//資料來源
private DataTable getDT()
{
DataTable dt = new DataTable();
dt.Columns.Add("學號", System.Type.GetType("System.String"));
dt.Columns.Add("姓名", System.Type.GetType("System.String"));
dt.Columns.Add("國文", System.Type.GetType("System.Int32"));
dt.Columns.Add("英文", System.Type.GetType("System.Int32"));
dt.Columns.Add("數學", System.Type.GetType("System.Int32"));
dt.Rows.Add("B9510001", "崔昱翰", 85, 66, 71);
dt.Rows.Add("B9510002", "王詩光", 65, 92, 88);
dt.Rows.Add("B9510003", "劉育白", 52, 66, 63);
dt.Rows.Add("B9510004", "許威宇", 98, 70, 61);
dt.Rows.Add("B9510005", "李佩珊", 81, 63, 76);
dt.Rows.Add("B9510006", "潘紹興", 91, 77, 76);
return dt;
}
//學生成績
public void StudentChart1(ZedGraphControl zgc)
{
// Google網域搜尋:Fill site:http://zedgraph.sourceforge.net/documentation
GraphPane myPane = zgc.GraphPane;
//
DataTable dt = getDT();
// Set the title and axis labels
myPane.Title.Text = "學生成績量化表";
myPane.XAxis.Title.Text = "學生姓名";
myPane.YAxis.Title.Text = "分數";
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
PointPairList list3 = new PointPairList();
Random rand = new Random();
// Generate random data for three curves
for (int i = 0; i <dt.Rows.Count; i++)
{
double x = (double)i;
double y1_chian = Convert.ToDouble(dt.Rows[i]["國文"]);
double y2_eng = Convert.ToDouble(dt.Rows[i]["英文"]);
double y3_math = Convert.ToDouble(dt.Rows[i]["數學"]);
list1.Add(x, y1_chian);
list2.Add(x, y2_eng);
list3.Add(x, y3_math);
}
// create the curves
// BarItem.Bar.Fill(Color) 填入單一顏色
// BarItem.Bar.Fill(Color, Color, Color, 90) 填入漸層顏色,第4參數是旋轉角度
BarItem myCurve1 = myPane.AddBar("國文", list1, Color.Red);
myCurve1.Bar.Fill = new Fill(Color.FromArgb(255, 238, 221));
BarItem myCurve2 = myPane.AddBar("英文", list2, Color.Blue);
myCurve2.Bar.Fill = new Fill(Color.FromArgb(221, 255, 238));
BarItem myCurve3 = myPane.AddBar("數學", list3, Color.Green);
myCurve3.Bar.Fill = new Fill(Color.FromArgb(238, 221, 255));
// Fill the axis background with a color gradient
// 背景色
// myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);
myPane.XAxis.MajorTic.IsBetweenLabels = true;
//加入X LabelText
string[] labels = new string[6];
for (int i = 0; i <dt.Rows.Count; i++)
{
labels[i] = Convert.ToString(dt.Rows[i]["姓名"]);
}
myPane.XAxis.Scale.TextLabels = labels; //X軸的說明文字
myPane.XAxis.Type = AxisType.Text; //X軸類型
//重新計算目前數據範圍
zgc.AxisChange();
// expand the range of the Y axis slightly to accommodate the labels
// myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;
// YAxis最大值
myPane.YAxis.Scale.Max = 110;
// Create TextObj's to provide labels for each bar
// 在bar上顯示數值
BarItem.CreateBarLabels(myPane, false, "f0");
//顯示格點
myPane.YAxis.MajorGrid.IsVisible = true;
myPane.XAxis.MajorGrid.IsVisible = true;
}