开发文章

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

一.需要实现的目标是:

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

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

 

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

如图1所示:

图1.jpg

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

设置Series的ChartType为Pie.jpg

图2

图2.jpg

 

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.jpg
 
折线图和柱形图的生成和饼图相同。

二.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.jpg

复制内容到剪贴板
  1.  4.C# chart绑定数据的几种方式  
  2.   
  3. (1)、数组, List 等简单Collection类型的方式  
  4.   
  5. Series s1= new Series();  
  6. 然后绑定数据就可以了  
  7. chart1.Series["s1"].Points.DataBindXY(Hdop, Vdop);  
  8. (2)DataTable方式  
  9.   
  10.   Series dataTable3Series = new Series("dataTable3");  
  11.   
  12.   dataTable3Series.Points.DataBind(dataTable3.AsEnumerable(), "日期""日发展""");  
  13.   
  14. dataTable3Series.XValueType = ChartValueType.DateTime;//设置X轴类型为时间  
  15. dataTable3Series.ChartType = SeriesChartType.Line;  //设置Y轴为折线  
  16. chart1.Series.Add(dataTable3Series);//加入你的chart1  

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

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

代码如下:

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

效果图如图6所示:

图6.jpg

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

代码如下:

复制内容到剪贴板
  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.            Random r = new Random();  
  8.            for (int i = 1; i < 13; i++)  
  9.            {  
  10.                //绑定数据  
  11.                s1.Points.AddXY(i, r.Next(20, 30));  
  12.                s2.Points.AddXY(i, r.Next(10, 30));  
  13.                s3.Points.AddXY(i, r.Next(20, 30));  
  14.            }  
  15.            //指定柱形条的颜色  
  16.            s1.Color = Color.Green;  
  17.            s2.Color = Color.Red;  
  18.            s3.Color = Color.Black;   
  19.            //加入到chart1中  
  20.            //X轴上网格  
  21.            chart1.ChartAreas[0].Axes[0].MajorGrid.Enabled = false;  
  22.            //y轴上网格  
  23.            //ct.ChartAreas[0].Axes[1].MajorGrid.Enabled = false;        
  24.            chart1.Series.Add(s1);  
  25.            chart1.Series.Add(s2);  
  26.            chart1.Series.Add(s3);  
  27.        }  

效果如图7所示:

图7.jpg

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

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

如图8所示:

图8.jpg

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

图9.jpg

效果图如图10所示:

图10.jpg

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

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

 

感谢 想念-忘记了 支持 磐实编程网 原文地址:
blog.csdn.net/DannyIsCoder/article/details/70225163

文章信息

发布时间:2017-12-17

作者:想念-忘记了

发布者:aquwcw

浏览次数: