废话少说,直接上图
工具箱数据一栏里的Chart,直接往界面拖,就长这样
如果你在工具箱找不到,那么先检查一下是不是用的.net 5.0以上的版本(5.0之后的版本就在基础控件移除了chart,需要手动导入第三方包,请自行搜索)。
选中图表控件,右击,点击属性一栏,你会看到下图
其中最主要,也是最常用的是图表一栏
注意,对于不清楚的字段选中后看最下方的解释(很多人会忽略)
首先介绍最必须的属性--图表一栏的Series
很简单,它就是数据的集合,你需要往图表添加数据或者移除数据都是通过Series
鼠标点击Series旁边的集合框框,再点击旁边的三个点点,你会看到
看到图表一栏的ChartType了吗?点一下,根据你的需求选择,然后点击确定,试着运行一下
啥也没有,因为你没往Series里添加数据,也没有设置ChartAreas的样式,等一下,ChartAreas?
回看Chart控件的属性,图表一栏,能找到吧,它的作用也很简单就是设置你的图表的纸张样式,比如网格,刻度,懂这两个就够了
先学着进行最常用的设置(上代码)
// 设置Y轴最大最小值
chart1.ChartAreas[0].AxisY.Minimum = -180;
chart1.ChartAreas[0].AxisY.Maximum = 180;
chart1.ChartAreas[0].AxisY.Interval = 30;
// 设置Y轴网格线样式
chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = true;
chart1.ChartAreas[0].AxisY.MajorGrid.LineWidth = 1;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.LightGray;
// 设置X轴最大最小值
chart1.ChartAreas[0].AxisX.Minimum = -45;
chart1.ChartAreas[0].AxisX.Maximum = 45;
chart1.ChartAreas[0].AxisX.Interval = 15;
// 设置Y轴网格线样式
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = true;
chart1.ChartAreas[0].AxisX.MajorGrid.LineWidth = 1;
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.LightGray;
直接把这段代码拷到你程序的构造函数,运行一下
额。。。还是什么都没有,Chart.ChartAreas[].Axisx的属性中很多设置都是默认自动显示的,举个例子:
回到设计视图,进入ChartAreas的集合编辑器(前面教过),拉倒最底下,进入Axes的集合编辑器,首先是X axis的属性,拉到最底下杂项的enabled改为true。现在就能显示X轴的刻度线了
抛开不谈,我们先添加数据,直接在之前的代码后加上
chart1.Series[0].Points.AddXY(20, 20);
chart1.Series[0].Points.AddXY(25, 40);
chart1.Series[0].Points.AddXY(30, 20);
这里我用的是曲线图,运行一下,如下图
因为Chart.ChartAreas中的很多属性设置的值为Auto,所以只要往其关联的Series里添加数据就会自动显示出来你设置好的样式
这就是最基本的使用了,接下来稍微的谈一下细节
在设计界面创建图表的时候会默认给我们生成一个图表最基本的属性,比如说添加一个ChartAreas、Series、Legends(右上角的标签),这些属性都是已经关联了的。
一个图表是可以有多个这些属性的,所以在上面的代码里我们用到的是Series[0]、ChartAreas[0]来引用默认帮我们设置好的这些属性
如果你需要创建自己的,比如Series,ChartAreas,不要忘关联它们,详情自行搜索
第一次写文章,后面还会更新,下一篇计划更新图表控件横坐标设置为时间,且随时间推移的功能(如下图),有兴趣的评论区催更,很有用