基本介绍:chart(图表)
功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器);
需要说明
一个chart可以包含多个chartArea。 chartArea是具体的坐标区域。 每一个chartArea主要包含X轴,Y轴,副X轴(上方),副Y轴(右方),绑定的线条,绑定的图例。 数据列可以有许多,只要将线条绑定到chartArea就可以在对应的chartArea显示。
关于chart类的官方文档:
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.datavisualization.charting.chart(v=vs.110).aspx#%E5%B1%9E%E6%80%A7
chart中所有数据储存在series类中,对数据的操作也集成在series类下。
具体请参照官方series类说明:
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.datavisualization.charting.series(v=vs.100).aspx
chart的使用:
chart控件的基本使用包括:
1.设置图表基本属性,包括背景色,样式等 (必要)
2.设置图表标题及其格式
3.设置X轴Y轴相关属性
4.设置图例相关属性
5.数据列设置(必要)
6.添加数据列,并设置绘图类型(必要)
一个实例:
#region 设置图表的属性
//图表的背景色
chart1.BackColor = Color.FromArgb(211, 223, 240);
//图表背景色的渐变方式
chart1.BackGradientStyle = GradientStyle.None;
//图表的边框颜色、
chart1.BorderlineColor = Color.FromArgb(26, 59, 105);
//图表的边框线条样式
chart1.BorderlineDashStyle = ChartDashStyle.Solid;
//图表边框线条的宽度
chart1.BorderlineWidth = 2;
//图表边框的皮肤
chart1.BorderSkin.SkinStyle = BorderSkinStyle.None;
#endregion
#region 设置图表的Title
Title title = newTitle();
//标题内容
title.Text = "BER";
//标题的字体
title.Font = new System.Drawing.Font("Microsoft Sans Serif", 12, FontStyle.Regular);
//标题字体颜色
//title.ForeColor = Color.FromArgb(26, 59, 105);
//标题阴影颜色
//title.ShadowColor = Color.FromArgb(32, 0, 0, 0);
//标题阴影偏移量
//title.ShadowOffset = 3;
chart1.Titles.Add(title);
#endregion
#region 设置图表区属性
//图表区的名字
ChartArea chartArea =new ChartArea("Default");
//背景色
chartArea.BackColor = Color.White;//Color.FromArgb(64, 165, 191, 228);
//背景渐变方式
chartArea.BackGradientStyle = GradientStyle.None;
//渐变和阴影的辅助背景色
chartArea.BackSecondaryColor = Color.White;
//边框颜色
chartArea.BorderColor = Color.Blue;
//边框线条宽度
chartArea.BorderWidth = 2;
//边框线条样式
chartArea.BorderDashStyle = ChartDashStyle.Solid;
//阴影颜色
//chartArea.ShadowColor = Color.Transparent;
//设置X轴和Y轴线条的颜色和宽度
chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisX.LineWidth = 1;
chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisY.LineWidth = 1;
//设置X轴和Y轴的标题
//chartArea.AxisX.Title = "time";
//chartArea.AxisY.Title = "count";
//chartArea.AxisX.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 10, FontStyle.Regular);
//chartArea.AxisY.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 10, FontStyle.Regular);
//设置图表区网格横纵线条的颜色和宽度
chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisX.MajorGrid.LineWidth = 1;
chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisY.MajorGrid.LineWidth = 1;
chart1.ChartAreas.Add(chartArea);
#endregion
#region 图例及图例的位置
Legend legend = newLegend();
legend.Alignment = StringAlignment.Center;
legend.Docking = Docking.Bottom;
legend.BackColor = Color.Transparent;
this.chart1.Legends.Add(legend);
#endregion
数据点设置:
Series series = new Series(string.Format("Ch{0}", i + 1));
//Series的类型
series.ChartType =SeriesChartType.Line;
//Series的边框颜色
series.BorderColor =Color.FromArgb(180, 26, 59, 105);
//线条宽度
series.BorderWidth = 3;
//线条阴影颜色
//series.ShadowColor= Color.Black;
//阴影宽度
//series.ShadowOffset= 2;
//是否显示数据说明
series.IsVisibleInLegend= true;
//线条上数据点上是否有数据显示
series.IsValueShownAsLabel = false;
//线条上的数据点标志类型
series.MarkerStyle =MarkerStyle.None;
//线条数据点的大小
//series.MarkerSize= 8;
绘制图表/折线:
//添加数据点
this.chart1.Series.Add(series);
//使用折线图
this.chart1.Series.ChartType = SeriesChartType.Line;