不管什么图表,都可以先绑定数据源,方法一样。
chart控件绑定数据源,代码如下:
chart1.Series[0].Points.DataBindXY(x, y);
x为x轴数据的集合/数组,y为y轴数据的集合/数组,0为第1组数据(第一组柱状图/第一条折线/第一组离散点……)。
x和y的数据可以自己设定,也可以从数据库中查询得到(例子为从数据库查询读取)。
不设置图表类型,则默认为柱状图。
private void Form3_Load(object sender, EventArgs e)
{
List<string> x = new List<string>();//x轴数值集合,存储对应的日期
List<double> y = new List<double>();//y轴数值集合,存储对应数值
//在数据库中查找
Mytools sqlcont = new Mytools();
DataSet ds = new DataSet();
//得到有多少组值
string cmd1 = "select count(*) from Control";
ds = sqlcont.getDs(cmd1, "Control");
int cidnum = 0;
int.TryParse(ds.Tables[0].Rows[0][0].ToString().Trim(), out cidnum);
double rate = 0;
//查找日期和y值,按ID升序排序
string cmd2 = "select ChartDate,Chartrate from Control order by Id asc";
ds = sqlcont.getDs(cmd2, "Control");
for (int i = 0; i < cidnum; i++)
{
string Datetime = ds.Tables[0].Rows[i][0].ToString().Trim();//Datetime为2010/04/20 0:00:00
string Datestring = Datetime.Split(' ')[0];//截取字符串得到 2010/04/20
double.TryParse(ds.Tables[0].Rows[i][1].ToString().Trim(), out rate);
x.Add(Datestring);
y.Add(rate);
Console.WriteLine("日期:" + Datestring + "," + "y轴值:" + rate);
}
chart1.Series[0].Points.DataBindXY(x, y);//将数据源绑定chart控件,x/y可以是集合,也可以是数组 第一组
//chart1.Series[k].Points.DataBindXY(x, y);
}
最后得到的图表如下,之后再设置chart的属性,请参看其他章节。之后会以折线图为例介绍。为了方便查看属性介绍,分成几个章节(边学习边记录,所以每章节慢慢补充,希望每个属性都能详细介绍到)。