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

2017年04月18日 10:08:21

一.需要实现的目标是:

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

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


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

如图1所示:

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

图2

图3
3.后台绑定数据
      List<string> xData = new List<string>() { "A", "B", "C", "D" };
            List<int> yData = new List<int>() { 10, 20, 30, 40 };
            chart1.Series[0]["PieLabelStyle"] = "Outside";//将文字移到外侧
            chart1.Series[0]["PieLineColor"] = "Black";//绘制黑色的连线。
            chart1.Series[0].Points.DataBindXY(xData, yData);

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

图4

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

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

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

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

代码展示:

 //画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。
        private void Form2_Load(object sender, EventArgs e)
        {
            //画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。
            Series s1 = new Series();
            Series s2 = new Series();
            Series s3 = new Series();

    //随机
            Random r = new Random();
            for (int i = 1; i < 13; i++)
            {
                //绑定数据
                s1.Points.AddXY(i, r.Next(20, 30));
                s2.Points.AddXY(i, r.Next(10, 30));
                s3.Points.AddXY(i, r.Next(20, 30));
            }
            //指定柱形条的颜色
            s1.Color = Color.Green;
            s2.Color = Color.Red;
            s3.Color = Color.Black;
            //加入到chart1中
            chart1.Series.Add(s1);
            chart1.Series.Add(s2);
            chart1.Series.Add(s3);
        }

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


图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)
        {
            List<string> xData = new List<string>() { "A", "B", "C", "D" };
            List<int> yData = new List<int>() { 10, 20, 30, 40 };
            //线条颜色
            chart1.Series[0].Color = Color.Green;
            //线条粗细
            chart1.Series[0].BorderWidth = 3;
            //标记点边框颜色      
            chart1.Series[0].MarkerBorderColor = Color.Black;
            //标记点边框大小
            chart1.Series[0].MarkerBorderWidth = 3;
            //标记点中心颜色
            chart1.Series[0].MarkerColor = Color.Red;
            //标记点大小
            chart1.Series[0].MarkerSize = 8;
            //标记点类型     
            chart1.Series[0].MarkerStyle = MarkerStyle.Circle;
            //将文字移到外侧
            chart1.Series[0]["PieLabelStyle"] = "Outside";
            //绘制黑色的连线
            chart1.Series[0]["PieLineColor"] = "Black";
            chart1.Series[0].Points.DataBindXY(xData, yData);
        }

效果图如图6所示:


图6

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

代码如下:

  private void Form2_Load(object sender, EventArgs e)
        {
            //画图柱形图的条数决定是由数据源也就Series决定。Series是对象,动态创建即可。
            Series s1 = new Series();
            Series s2 = new Series();
            Series s3 = new Series();
            Random r = new Random();
            for (int i = 1; i < 13; i++)
            {
                //绑定数据
                s1.Points.AddXY(i, r.Next(20, 30));
                s2.Points.AddXY(i, r.Next(10, 30));
                s3.Points.AddXY(i, r.Next(20, 30));
            }
            //指定柱形条的颜色
            s1.Color = Color.Green;
            s2.Color = Color.Red;
            s3.Color = Color.Black; 
            //加入到chart1中
            //X轴上网格
            chart1.ChartAreas[0].Axes[0].MajorGrid.Enabled = false;
            //y轴上网格
            //ct.ChartAreas[0].Axes[1].MajorGrid.Enabled = false;      
            chart1.Series.Add(s1);
            chart1.Series.Add(s2);
            chart1.Series.Add(s3);
        }

效果如图7所示:


图7

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

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

如图8所示:


图8

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


图9

效果图如图10所示:


图10

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

 //DoughnutRadius用来设置用作圆环图大小的半径百分比
 chart1.Series["data"].CustomProperties = "DoughnutRadius = 20";

使用WinForm Chart控件 制作饼装,柱状,折线图

chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.Annotations :批注集合(我没怎么用到,但是配置的话会在图标区域出现一些可以备注的东西吧) 2.ChartAr...
  • dream2050csdn
  • dream2050csdn
  • 2016-12-07 20:52:23
  • 14043

C# Winform Chart控件使用

稍微总结下 C# 的Winform 中 chart 控件使用踩过的坑。同时,希望能对于其他控件的使用有一定的参考性。...
  • zx48822821
  • zx48822821
  • 2017-05-30 21:30:35
  • 2117

WinForm Chart控件使用记录(由于制作饼装,柱状,折线图)

由于公司的winform项目需要用到Chart图表,抽空研究了一下,特地发上来给大家做个参考,就目前而言用到的属性说明都做了注释;主要用到Chart控件图表区域的属性有五个属性 Annotation...
  • c331043
  • c331043
  • 2016-08-06 23:49:42
  • 5067

winform chart 控件之滚动条的放大与缩小功能

windows form chart控件功能已经非常强大了,做出来效果也是相当好看。更重要的是使用起来相当的方便。 现在要介绍的chart图表的放大与缩小功能,当图表要显示的数据量很多的时候,这时就...
  • qq798833488
  • qq798833488
  • 2016-06-19 14:47:39
  • 5387

C# Chart 控件快速使用

测试来玩玩 , 目标是画个柱状图。 1. 新建winform 工程, 从工具栏拖入 Chart 控件。这时会默认建立了Serie 1 . // chart1 ...
  • helloapplepear
  • helloapplepear
  • 2015-09-01 09:42:33
  • 6708

Winform Chart

  • 2017年08月15日 10:53
  • 52KB
  • 下载

C# winform chart 饼图 直方图 and so on

在[工具]->[添加/移出工具箱]->鼠标单击->选择[COM组件]找到Mcrosoft Chart Control 6.0(SP4)(oledb) 选中,然后[确定],你会发现你的工具箱里面有了一个...
  • mustbelove
  • mustbelove
  • 2007-01-24 09:28:00
  • 6653

winform的chart控件初探

有了chart控件,画图变得很简单了。打开属性Series可以任意设置,画多条线可以添加series,而其中的ChartType可以控制画line、pie或者还是chart,还有SaveImage可以...
  • redder_xu
  • redder_xu
  • 2011-09-07 09:54:16
  • 15236

winform chart控件 案例

工具: freamwork   3.5 版本  vs2010   sql2008  小女刚刚学习winform报表,如果做的有什么不对的,还望大N们指点指点,嘻嘻   代码部分: namesp...
  • Sara_YHL
  • Sara_YHL
  • 2011-10-17 10:40:31
  • 11133

Winform Chart控件绘制阴影区域

先来看看效果 公司电力项目需要绘制这种工业图表,之前同事用Series绘制的 有点麻烦 需要计算起始点位置,后来我发现Chart控件本来就提供了这种阴影属性,简单方便 直接上代码 pr...
  • xiaoyiyz
  • xiaoyiyz
  • 2015-08-27 10:14:19
  • 2418
收藏助手
不良信息举报
您举报文章:C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展
举报原因:
原因补充:

(最多只允许输入30个字)