另外一篇介绍的文章

blog.sina.com.cn/s/blog_621e24e20101cp64.html

C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展

.

标签: c#控件布局

2017-04-18 10:08 2164人阅读 评论(0) 收藏 举报

.

chart控件绘制图形 - 图1 分类:

C#基础知识(10) chart控件绘制图形 - 图2 C#控件知识(10) chart控件绘制图形 - 图3

.

版权声明:本文为博主原创文章,未经博主允许不得转载。

一.需要实现的目标是:

1.将数据绑定到pie的后台数据中,自动生成饼图。

2.生成的饼图有详细文字的说明。

1.设置chart1的属性Legends中默认的Legend1的Enable为false;

如图1所示:chart控件绘制图形 - 图4

图1

2.设置Series的ChartType为Pie,如图2所示:

chart控件绘制图形 - 图5

图2

chart控件绘制图形 - 图6

图3

3.后台绑定数据

  1. List xData = new List() { "A", "B", "C", "D" };
  2. List yData = new List() { 10, 20, 30, 40 };
  3. chart1.Series[0]["PieLabelStyle"] = "Outside";//将文字移到外侧
  4. chart1.Series[0]["PieLineColor"] = "Black";//绘制黑色的连线。
  5. chart1.Series[0].Points.DataBindXY(xData, yData);

4.后台代码主要实现了数据绑定和将指示的文字移到饼图的外侧。如图4所示:

chart控件绘制图形 - 图7

图4

折线图和柱形图的生成和饼图相同。

二.chart画饼图,折线图,柱形图的扩展。

1.使用chart控件创建,跟上面相同;

2.进行关于柱形图样式的数据数据,

代码展示:

//画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。

  1. private void Form2_Load(object sender, EventArgs e)
  2. {
  3. //画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。
  4. Series s1 = new Series();
  5. Series s2 = new Series();
  6. Series s3 = new Series();
  7. //随机
  8. Random r = new Random();
  9. for (int i = 1; i < 13; i++)
  10. {
  11. //绑定数据
  12. s1.Points.AddXY(i, r.Next(20, 30));
  13. s2.Points.AddXY(i, r.Next(10, 30));
  14. s3.Points.AddXY(i, r.Next(20, 30));
  15. }
  16. //指定柱形条的颜色
  17. s1.Color = Color.Green;
  18. s2.Color = Color.Red;
  19. s3.Color = Color.Black;
  20. //加入到chart1中
  21. chart1.Series.Add(s1);
  22. chart1.Series.Add(s2);
  23. chart1.Series.Add(s3);
  24. }

3.柱形图效果如图5所示:

chart控件绘制图形 - 图8

图5

4.C# chart绑定数据的几种方式

(1)、数组, List 等简单Collection类型的方式

Series s1= ``new Series();

然后绑定数据就可以了

chart1.Series[``"s1"``].Points.DataBindXY(Hdop, Vdop);

(2)DataTable方式

Series dataTable3Series = ``new Series(``"dataTable3"``);

dataTable3Series.Points.DataBind(dataTable3.AsEnumerable(), ``"日期"``, ``"日发展"``, ``""``);

dataTable3Series.XValueType = ChartValueType.DateTime;``//设置X轴类型为时间

dataTable3Series.ChartType = SeriesChartType.Line; ``//设置Y轴为折线

chart1.Series.Add(dataTable3Series);``//加入你的chart1

三.chart控件画图的一些关键点

1.如何将折线图的各个数据点凸显出来

代码如下:

private void Form3_Load(object sender, EventArgs e)

  1. {
  2. List xData = new List() { "A", "B", "C", "D" };
  3. List yData = new List() { 10, 20, 30, 40 };
  4. //线条颜色
  5. chart1.Series[0].Color = Color.Green;
  6. //线条粗细
  7. chart1.Series[0].BorderWidth = 3;
  8. //标记点边框颜色
  9. chart1.Series[0].MarkerBorderColor = Color.Black;
  10. //标记点边框大小
  11. chart1.Series[0].MarkerBorderWidth = 3;
  12. //标记点中心颜色
  13. chart1.Series[0].MarkerColor = Color.Red;
  14. //标记点大小
  15. chart1.Series[0].MarkerSize = 8;
  16. //标记点类型
  17. chart1.Series[0].MarkerStyle = MarkerStyle.Circle;
  18. //将文字移到外侧
  19. chart1.Series[0]["PieLabelStyle"] = "Outside";
  20. //绘制黑色的连线
  21. chart1.Series[0]["PieLineColor"] = "Black";
  22. chart1.Series[0].Points.DataBindXY(xData, yData);
  23. }

效果图如图6所示:

chart控件绘制图形 - 图9

图6

  1. 如何去掉柱形图纵向线条

代码如下:

private void Form2_Load(object sender, EventArgs e)

  1. {
  2. //画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。
  3. Series s1 = new Series();
  4. Series s2 = new Series();
  5. Series s3 = new Series();
  6. Random r = new Random();
  7. for (int i = 1; i < 13; i++)
  8. {
  9. //绑定数据
  10. s1.Points.AddXY(i, r.Next(20, 30));
  11. s2.Points.AddXY(i, r.Next(10, 30));
  12. s3.Points.AddXY(i, r.Next(20, 30));
  13. }
  14. //指定柱形条的颜色
  15. s1.Color = Color.Green;
  16. s2.Color = Color.Red;
  17. s3.Color = Color.Black;
  18. //加入到chart1中
  19. //X轴上网格
  20. chart1.ChartAreas[0].Axes[0].MajorGrid.Enabled = false;
  21. //y轴上网格
  22. //ct.ChartAreas[0].Axes[1].MajorGrid.Enabled = false;
  23. chart1.Series.Add(s1);
  24. chart1.Series.Add(s2);
  25. chart1.Series.Add(s3);
  26. }

效果如图7所示:

chart控件绘制图形 - 图10

图7

  1. 如何使用chart控件画圆环图

操作与饼形图,折线图等相似,只是需要将chartType设置为Doughnut;

如图8所示:

chart控件绘制图形 - 图11

图8

在这里可以设置关于圆环的内外百分比,如图9所示:

chart控件绘制图形 - 图12

图9

效果图如图10所示:

chart控件绘制图形 - 图13

图10

注意:代码设置圆环大小代码如下:

//DoughnutRadius用来设置用作圆环图大小的半径百分比

chart1.Series[“data”].CustomProperties = “DoughnutRadius = 20”;

.

顶0踩0.

相关文章推荐