一、什么是Micosoft.Chart.Controls
 Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用。在.NET4.0之后(即VS2010之后)不需要再手动安装,集成在了VS里面,比如我用的VS2017版本,直接在工具箱中点开“ 数据 ”控件,里面就有一个Chart控件,直接拖动到窗体中即可,默认创建一个chart1的实例对象。

虽然现在流行很多的图形可视化控件库,要么缺少中文参考文档,要么是很古老的版本界面丑陋,要么是需要收费的控件,故而用来很不方便,使用微软自己的Chart依然可以实现很漂亮、很简单的图形可视化操作。

二、Chart控件五大核心“ 图表属性 ”——它们均是“ 集合 ”
之所以称之为“图表属性 ”是因为在属性中,这五大属性的分类是一样的,如下图所示:

它们均是集合属性。其中中间的三个属性ChartAreas、Series、Legends是最为核心的三个,画图的时候主要用到的也是这三个,下面就这5类属性,做一个简单的介绍。

1、ChartAreas属性
      ChartAreas可以理解为是一个图表的绘图区,例如,你想在一幅图上呈现两个不同属性的内容,一个是用户流量,另一个则是系统资源占用情况,那么你要在一个图形上绘制这两种情况,明显是不合理的,对于这种情况,可以建立两个ChartArea,一个用于呈现用户流量,另一个则用于呈现系统资源的占用情况。
      当然了,图表控件并不限制你添加多少个绘图区域,你可以根据你的需要进行添加。对于每一个绘图区域,你可以设置各自的属性,如:X,Y轴属性、背景等。需要注意的是,绘图区域只是一个可以作图的区域范围,它本身并不包含要作图形的各种属性数据。

ChartAreas属性的定义如下:

public ChartAreaCollection ChartAreas { get; }   由此可见,他是一个返回ChartAreaCollection的只读属性。

(1)绘图区域的添加——三种方法

在拖动一个Chart控件到窗体中去的时候,会默认有一个Name=“ChartArea1"的对象,它是ChartArea类的一个实例。

a、直接通过操作属性:直接点击添加,会依次按照ChartArea2这样添加下去,也可以修改名字。

b、chart1.ChartAreas.Add("ChartArea2");当然可以起一个其它的名字

c、ChartArea area2=new ChartArea(“ChartArea2”);

chart1.ChartAreas.Add(area2);

第三种方法展现了创建绘图区域的本质,即添加一个ChartArea类型的对象到ChartAreas属性里面去。

(2)绘图区对象的获取方法

每一个绘图区本质上都是ChartArea的一个实例对象,然后将该对象Add到了chart1对象的ChartAreas集合属性,故而有两种获取方法。

a、通过绘图区名字获取:chart1.ChartAreas["ChartArea1"].属性或方法。

b、通过下标索引获取:   chart1.ChartAreas[0].属性或方法。

之所以有这两种方法,是因为ChartAreas属性的本质是集合。

(3)绘图区域常见的一些属性

下面的这些属性均是定义在 ChartArea 类型中的,故而是绘图区的属性

AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式,默认为Vertical。

AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

AlignWithChartArea:参照对齐的绘图区名称。

InnerPlotPosition:图表在绘图区内的位置属性。

Position:绘图区位置属性,选项如同InnerPlotPosition。

Name:绘图区名称。

Axes:坐标轴集合-非常重要的部分,可分别设置X轴(X axis),Y轴(Y axis),第二X轴(SecnondaryX axis)和第二Y轴(Secnondary Y axis),常用的属性包括:

a.ArrowStyle设置坐标轴是否有箭头

b.Interval:轴刻度间隔大小

c.IntervalOffset:轴刻度偏移量大小

d.LableStyle 设置坐标轴的文字大小等

e.MajorGrid:主要辅助线

f.MajorTickMark:主要刻度线

g.MinorTickMark:次要刻度线

h.MinorGrid:次要辅助线

i.Title:坐标轴标题

j.TitleAlignment:坐标轴标题对齐方式

注意:Axes属性又是一个“ 集合属性”,这也是为什么是Asex,而不是Axis,因为Asex是Axis的复数形式。Asex集合中放置的元素是Axis类型的实例,我们可以通过属性设计器去完成;默认情况下,每一个绘图区会有两组坐标系,即X、Y、第二X、第二Y。要访问某一个

chart1.ChartAreas[1].Axes[3].属性或者是方法

这些属性或者是方法可以设置坐标轴的显示样式,网格的显示方式等等,可以认为定制的。

2、Series属性
          Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的合

Series,应该是整个绘图中最关键的内容了,通俗点说,即是实际的绘图数据区域,实际呈现的图形形状,简单点说,以折线图为例,每个Series就是一条线,每一条线都有自己的绘制形状、样式、独立的数据等。需要注意的是,每一个Series,你可以指定它的绘制区域(即把哪个Series画在哪个ChartArea),人情况下,如果不自己再添加绘图区域ChartArea,则所有的Series会画在同一个ChartArea。
       (1)Series的添加

因为Series本身是一个集合属性,故而有两种方法添加

第一、通过属性设置面板添加,默认情况下里面已经有了一个Series1存在了,它是 Series 类型的实例

第二、通过代码添加。chart1.Series.Add("Series2");
        第三、直接创建一个Series对象,

Series series2 = new Series("Series2");
                  chart1.Series.Add(series2);

(2)Series对象的属性和方法获取

每一个Series本质上都是Series的一个实例对象,然后将该对象Add到了chart1对象的Series集合属性,故而有两种获取方法。

a、通过绘图区名字获取:chart1.Series["Series1"].属性或方法。

b、通过下标索引获取:   chart1.Series[0].属性或方法。

之所以有这两种方法,是因为Series属性的本质是集合。

(3)图表Series一些常见的一些属性

1.ChartArea:图表所属的绘图区域名称

2.ChartType:图表类型(柱形、饼形、线形、点形、折线图等,有多达几十种之多)

3.IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

4.Label:数据点标签文本

5.LabelFormat:数据点标签文本格式

6.LabelAngle:标签字体角度

7.Legend:当前数据系列(图表)使用的图例名称

8.Name:数据系列的名称

9.Palette:数据系列(图表)外观定义

10.Points:数据点集合,构成数据系列的点

11.XValueMember:横坐标绑定的数据源

12.XValueType:横坐标数字的类型,默认为auto,即根据传入的数据自动规定类型

13.YValueMembers:纵坐标绑定的数据源

14.YValueType:纵坐标数字的类型默认为auto,即根据传入的数据自动规定类型

15.XAxisType:只是所要使用的坐标轴是主坐标还是副坐标,它有两个取值,Primary和Sencondary

16.YAxisType:

17. 映射区(TooTip):鼠标放在数据点上出现的小提示,建议用代码控制;

(4)Series属性的“ 数据绑定 ”方式。——上面的Points是“ 核心 ”

(1)Points集合

因为points是集合,故而具有集合的相关性质,Points是一个DataPointCollection类型的集合属性。可以查看           DataPointCollection的定义来查看相关的方法。

要给每一个Series绑定数据,主要用到以下三个方法:

public void DataBind(IEnumerable dataSource, string xField, string yFields, string otherFields);
 
               public void DataBindXY(IEnumerable xValue, params IEnumerable[] yValues);
 
               public void DataBindXY(IEnumerable xValue, string xField, IEnumerable yValue, string yFields);
 
               public void DataBindY(IEnumerable yValue, string yFields);
如下所示:
                       chart1.Series["Series1"].Points.DataBindXY(x, y);   即绑定了一组 X,Y到一个Series上面去了。

3、Legends属性
MSChart的图例默认不显示,但可进行如下设置:

1.Alignment:对齐方式

2.AutoFitMinFontSize:当IsTextAutoFit为true时,显示的最小字体

3.BackColor:背景颜色,当本身的绘图区域有背景时,将其设置为transparent效果更佳。

4.enabled:是否显示图例

5.IsTextAutoFit:文字大小根据图例区域的大小自动调整

6.Position:图例出现的位置

4、另外两个集合属性
     Annotations注解集合
     Annotations是一个对图形的一些注解对象的集合,所谓注解对象,类似于对某个点的详细或者批注的说明,

Titles标题合集
    根据字面含义即可以理解,是图表的标题配置,同样可以添加多个标题,以及设置标题的样式及文字、位置等属性。多看一下     它的属性即能明白各自的含义。

5    示意图

chart 内包括:

Axis Label

横纵坐标的文字 (比如 0 20 40 ....)

Axis Title

横纵坐标的代表什么(比如 Y Axis Title)

Chart Area

图标所在位置

Chart Picture

底色的背景图

Chart Series

chart的内的东西(比如 线或者柱形图等)

Legend

chart内seriess代表什么的标志符

Grid Lines

网格

Tick Marks

刻度

Plot Area

图区

Title

chart标题

Value Label

label的value

c# chart图表控件总结相关推荐

  1. 强大的Winform Chart图表控件使用说明

    强大的Winform Chart图表控件使用说明 引言 使用说明 使用示例 资料 引言 以前经常开发网页端的软件,图表组件一般用echart,功能和样式都非常齐全.但是当用winform开发时,类似的 ...

  2. 微软C#中的CHART图表控件

    http://www.cnblogs.com/winshe/articles/6604406.html https://blog.csdn.net/akof1314/article/details/5 ...

  3. .net chart(图表)控件的使用

    .Net chart control for .net framework 3.5 文章类型:原创文章 摘要: 这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Cont ...

  4. 可用于wpf的图表控件:WPFTookit Chart

    当前项目需要一个图表控件,尝试用过mschart和livechart,都不是很满意.这里试一下WPFToolkit.DataVisualization. 引用dll,通过nuget包管理器下载WPFT ...

  5. Essential Chart for ASP.NET MVC商业图表控件相关介绍及下载

    Essential Chart for ASP.NET MVC是一款功能强大的商业图表控件,提供了创新的数据对象模型可以很容易地与多种数据源进行绑定,提供了35种图表类型,支持2D和3D显示,多轴显示 ...

  6. .NET Framework 3.5 SP1的图表控件——Chart (转)

    基于.NET Framework 3.5 SP1的图表控件--Chart,可 在WinForm和WebForm下使用!并同时提供了大量的示例 官方主页:http://code.msdn.microso ...

  7. java绘制图表控件_画图控件 Chart Control -Java架构师必看

    .NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用,一直网络 .NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用 ...

  8. 微软图表控件MsChart

    转自:http://tech.ddvip.com/2008-11/122640479791375.html 昨天在网上看到了微软发布了.NET 3.5框架下的图表控件,第一时间抓下来看了一下,发觉功能 ...

  9. 跨平台图表控件TeeChart使用教程:导入XML数据

    2019独角兽企业重金招聘Python工程师标准>>> TeeChart的最新版中包含了一个自动加载XML数据的新组件.这个组件的名字叫做TTeeXMLSource,用户可以在Tee ...

最新文章

  1. 项目感言--功能的模块化
  2. OpenCV图像处理实际案例(一)---图像倾斜矫正(仿射变换)和去边(轮廓查找+ROI提取)
  3. (原)ubuntu14.04中安装gcc4.9和g++4.9
  4. 传说之下地图素材_文旅黄陵——轩辕黄帝传说故事(十一) 杜康酿酒的传说...
  5. SAP Marketing Cloud功能简述(一)Contacts和Profiles
  6. 人脸识别进水_万维|人脸识别闸机怎么选?
  7. Visual Studio 常用快捷键
  8. PHP之webservice调用接口
  9. php连接postgresql数据库
  10. MySQL语法一:数据定义语句
  11. 写给非网工的CCNA教程(3)聊聊ping命令后的原理
  12. 软件工程(需求分析)
  13. 开源项目9GAG源码解析与Material改造(一)
  14. export default function和export function的区别
  15. VUE中fetch结合支付宝API验证银行卡号
  16. oracle 11g失败,求助,oracle 11g 启动失败,求大神帮忙看看,谢谢
  17. 3S处理技术 -MapGIS转换shp攻略
  18. opencv学习笔记五:cv2.warpAffine()函数详解
  19. WebSocket原生JavaScript实现简易聊天室
  20. 计算机专业课考研试卷谁出卷,考研试卷谁来改?揭开考研阅卷流程内幕

热门文章

  1. Java中Collections.sort()的使用!
  2. 什么牌子降噪耳机音质最好?音质最好的降噪耳机排行榜
  3. oracle dml commit,Oracle dml开始到commit期间的流程
  4. 网络设备配置与管理————3、以太网
  5. Ajax请求后防止自动刷新方法
  6. zeppelin的介绍与使用
  7. vue中关闭浏览器清除localStorage
  8. jeecg前台添加数据是出现unknown entity的解决方法
  9. PC QQ密码登录总是要图形验证解决方法
  10. 图神经网络学习实践——Zachary’s karate club Problem