一.需要实现的目标是:

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"

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

  1. C# WinForm开发系列 - WebBrowser

    原文:C# WinForm开发系列 - WebBrowser 介绍Vs 2005中带的WebBrowser控件使用以及一些疑难问题的解决方法, 如如何正确显示中文, 屏蔽右键菜单, 设置代理等; 收集 ...

  2. C# WinForm开发系列 - ListBox/ListView/Panel

    转自会飞的小猪文章 C# WinForm开发系列 - ListBox/ListView/Panel 在博客园看到了一篇博文,觉得很不错,就转载过来了.    包含自定义绘制的ListBox, 带拖动, ...

  3. C# WinForm开发系列 - ZedGraph

    ZedGraph是用于创建任意数据的二维线型.条型.饼型图表的一个类库,也可以作为Windows窗体用户控件和Asp.Net网页控件.这个类库具有高度的适应性,几乎所有式样的图表都能够被创建.这个类库 ...

  4. C# WinForm开发系列 - 文章索引

    该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm ...

  5. C# WinForm开发系列 - GDI+【转】

    http://blog.csdn.net/blue_sky6/article/details/53811435?locationNum=6&fps=1 C# WinForm开发系列 - GDI ...

  6. Windows高DPI系列控件(一) - 饼图

    目录 一.醉一醉 二.效果展示 三.高DPI适配 1.高DPI框架运作 2.适配高DPI 3.适配饼图 四.相关文章 原文链接:Windos高DPI系列控件(一) - 饼图 一.醉一醉 眨眼功夫,20 ...

  7. 【VS开发】单文档中往视图中加入控件

    [VS开发]单文档中往视图中加入控件 标签(空格分隔): [VS开发] 分隔视图的但文档窗口,要显示控件,推荐使用CFormView或者CCtrlView,前者和对话框的做法一致. 在MainFram ...

  8. C# WinForm开发系列 - DataGrid/DataGridView

    在WinForm开发中,DataGrid/DataGridView被广泛使用于绑定数据库中数据进行呈现.整理一些关于DataGrid/DataGridView使用的文章,涉及DataGrid/Data ...

  9. C# WinForm开发系列 - Form/Window

    Form是WinForm开发中非常重要的一个控件, 本文将包含如何制作一个关于对话框,系统载入提示窗体, 创建类似于QQ提示框以及创建不规则窗体等(文章及相关代码搜集自网络,仅供学习参考,版权属于原作 ...

随机推荐

  1. is和==的区别以及编码、解码

    一.is和==的区别 1,id( ) id( )是python的一个内置函数,通过id( )我们可以查看到一个变量表的值在内存中的地址: s1 = 2 print(id(s1)) # 15143680 ...

  2. Java Concurrent happens-before

    happens-before relation on memory operations such as reads and writes of shared variables. The resul ...

  3. Android Studio 启动时不自动打开项目

    主界面中,选择单击菜单栏 File ,单击 Settings 选择 Appearance & Behavior 选项.选择System Settings选项.取消勾选Reopen last p ...

  4. 编译原理课后习题答案令A,B和C是任意正规式,证明以下关系成立(A|B)*=(A*B*)*=(A*|B*)*

    题目: 令A.B和C是任意正规式,证明以下关系成立: A∣A=A (A*)*= A*         A*=ε∣A A*        (AB)*A=A(BA)*        (A∣B)*=(A*B ...

  5. 在用 JavaScript 工作时,我们经常和条件语句打交道,这里有5条让你写出更好/干净的条件语句的建议。

    1.多重判断时使用 Array.includes 2.更少的嵌套,尽早 return 3.使用默认参数和解构 4.倾向于遍历对象而不是 Switch 语句 5.对 所有/部分 判断使用 Array.e ...

  6. java执行cmd命令和linux命令

    文章出处http://blog.csdn.net/xh16319/article/details/17302947 一:window下执行cmd指定 一:window下执行cmd指定 程序例子: [j ...

  7. day13 迭代器

    迭代器 'iterable' 可迭代的 内部含有__iter__方法的数据类型就是可迭代的 —— 可迭代协议 print(dir([])) print(dir({})) print(dir(5)) p ...

  8. Seaborn相关

    Seaborn:基于Matplotlib,seaborn提供许多功能,比如:内置主题.颜色调色板.函数和提供可视化单变量.双变量.线性回归的工具.其能帮助我们构建复杂的可视化. ————————缩写定 ...

  9. 我们为什么使用ORM

    我们为什么使用ORM? http://www.cnblogs.com/tansm/archive/2006/06/07/419927.html 博客园在推广ORM方面的确做了很大的贡献,很多的程序员开 ...

  10. centos6.5系统python2.6升级到python3.6

    1.安装必备的工具 wget:yum install wget gcc:yum install gcc zlib zlib-devel: yum install zlib zlib-devel -y ...