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

为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图:

先简单说一下,从图中可以看到一个chart可以绘制多个ChartArea,每个ChartArea都可以绘制多条Series。ChartArea就是就是绘图区域,可以有多个ChartArea叠加在一起,series是画在ChartAarea上的,Series英文意思是“序列、连续”,其实就是数据线,它可以是曲线、点、柱形、条形、饼图...可以注意该chart当数据非常多的时候可以通过鼠标选择查看区域,进一步拖拽横纵向滚动条来缩小曲线图查看。

代码中的Chart控件的命名是chartData,数据源是dt,由于chart属性太多,不好一一解释,所以请仔细看截图,尤其重视本例用到的属性

一、数据源:

    数据返回方式是DataSet.Tables[0],即DataTable,也是最基本的数据源方式。这里只介绍DataTable绑定数据源,很简单:

chartData.DataSource = dt;
                chartData.DataBind();

二、Series:
    Series是画在ChartArea上的线、点、柱形、条形、饼图,简单点儿说就是画在上面的数据,直接说属性,

1. “标记”:就是数据点,某个数据值的点。如下图所示:



               MarkerBorderColor    数据点边框的颜色

MarkerBorderWidth    数据点边框的宽度

MarkColor            数据点的颜色
               MakerSize            数据点的大小,默认值为0数据点不存在,建议代码控制

MarkerStep           数据点显示的频率

MarkerStyle          数据点的样式,可以是方块、圆圈、三角、叉子....

2. “标签”:就是现在是在数据点旁边数据值


            IsValueShownAsLabel                    数据值是否显示,建议代码控制

SmartLabelStyle                        数据值样式

SmartLabelStyle.Enabled                直接控制可用不可用,建议不可用

SmartLabelStyle.AllowOutsidePloArea    数据值显示是否允许在外面

其他属性自己试吧

注意:如果要使用SmartLabelStyle的话,所有的数据点的值都会自动找位置显示出来,如果某一个区域数据点较多,就会直线指示;如果不用的话,数据点的值会在数据点旁边显示,不会有直线。如下图所示也可以看到AllowOutsidePlotArea的区别:


3. “Font”:数据标签上的字体和样式

      
                     Font                      标签字体设置

                     Font.Unit                 个人设置此值为Document,自己体会
                     LabelAngle                标签角度,斜多少度,建议就正着
                     LabelBackColor            标签背景颜色
                     LabelBorderColor          标签边框颜色
                     LabelBorderDahStyle       标签边框样式
                     LabelBorderWidth          标签边框宽度
                     LabelForeColor            标签字体颜色
                     其他属性自己试
                      
        真好看数据多的时候本来显示就乱拉,这样更是画蛇添足,建议透明,正常点的颜色就好

 

3. 空白点:就是连续的数据,譬如X轴对应Y轴没数据,或Y轴对应X轴没数据,这样的数据点可以对其设置相应的属性,属性大多都是上面说过的,自己试一下即可
               

4. 数据:其实就是就是serie的名字和值类型

  
                           Name                  就是唯一的名字

XvalueType            X轴值类型

YValuesPerPoint       数据点的Y值数目

YValueType            Y轴值类型

其他属性自己试

默认不用设置就好,主要是X轴和Y轴值类型设置的是Auto,也就是根据X轴上的值和Y轴上的值的类型自动匹配,当然手动设置的话不设错就行了。

5. 数据源:注意这里是Series的数据源

注意:
    第一,这两个属性对应的是DataTable的两个列,也就是一般的X轴对应时间,Y轴对应数据值,但是也要注意对DataTable的每个数据单元的值做判断,尤其是DBNull或空。我这里的数据库的NewDateTime列数据类型是DateTime类型,NewFyj是Double类型。

第二,Series的数据源和Chart控件的数据源有区别,只有DataTable先绑定了Chart,Series才对应到列,否则无法对应。

第三,假如用户需要先查看所有数据,然后取消某几条进行数据对比,但是不需要重新查询数据,推荐赋值string.Empty实现,如下图:



6. 图表:也就是Serie画在哪个ChartArea上,ChartType是Serie的图表类型,也就是画何种图,曲线图、直线图、点、柱状图、饼图等...

7. 图例:也就是每个Serie的名字和样式,只要创建Serie就会自动产生加载在Legend里,里面的属性可以试一下,如果想调整Legend的位置,可以去Legend集合里设置,比较简单,这里不多说



8. 图表



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



10. 杂项


                          EmptyPointValue          空数据点的值做平均还是做零处理

LabelStyle               对标签硬性的规定显示在数据点旁的哪个位置

11. 轴:也就是X轴和Y轴,X轴有主轴和副轴,Y轴也有主轴和副轴,主轴为Primary,副轴为Secondary。X主轴在下方,Y主轴在右方,X副轴在上方,Y副轴在右方。


   
三、ChartAreas:
    Chart控件里最重要的,每个Serie都画在ChartArea上,Chart控件可以有多个ChartArea叠加在一起显示。比如第一个ChartArea绘制的是曲线,第二个画的柱状图或者是什么什么,这也是上面说过的Serie的ChartType,我们也可以把多个Serie画在一个ChartArea上,但是如果有一个列数据单位范围在500~10000之间的数据浮动最大,有一列数据单位范围在0.1~2.0之间,有一列数据单位范围在50~100之间,那画在同一个ChartArea上显示的话,0.1到2.0的数据会变成一条直线。当只有1、2条这样的数据时,可以在Serie中设置主轴和副轴,但当出现多条数据,多种类型的显示,就需要多个ChartArea来解决了。由于属性太多了,捡重点属性介绍,其他的属性自己试一下

1. 对齐:ChartArea对齐方式


                    AlignmentOrientation            水平对齐、垂直对齐、全部对齐

AlignmentStyle                  根据哪种方式对齐

AlignmentWithChartArea          和哪个对齐

老实说,没啥用,可以设置Position,一会儿在外观里会说到

2. 三维:自己试试,效果很沉重,不是很好

3. 外观:可以对ChartArea颜色、边框、位置的设置

BackColor                       ChartArea的背景颜色

BackGradientStyle               背景颜色的渐变方式

BackHatchStyle                  背景阴影

BackImage                       背景图片

BackImageAlignment              图片显示位置

BackImageTransparentColor       绘制图像时显示的颜色

BackImageWrapMode               包装模式  
                        BackSecondaryColor              ChartArea的第二背景颜色,搭配渐变用的

BorderColor                     边框颜色

BorderDashStyle                 边框线的样式

BorderWidth                     边框宽度

ShadowColor                     整个图标的背影颜色

ShadowOffset                    背影偏移量

注意:

第一,InnerPlotPosition和Position一个是大的,一个是内部绘制的,试一下就明白了,这里最重要的是多个ChartArea重叠在一起的时候,两个Position一定要设置相同,否则就重叠不上了。

第二,多个ChartArea重叠在一起的时候,颜色或图片只能在叠在最底下的ChartArea来设置,上面的ChartArea都设置为透明即可,最底下的ChartArea是ChartAreas[0],所以不要设置错。

4. 游标:CursorX和CursorY,就是横向和纵向滚动条


                       CursorX.AutoScroll                  滚动条自动滚动

CursorX.AxisType                    游标作用在主轴还是副轴

CursorX.Interval                    游标偏移的间隔

CursorX.IntervalOffset              游标间隔偏移量

CursorX.IntervalOffsetType          游标间隔的单位,建议Auto
                       CursorX.Type                        游标间隔偏移量的单位,建议Auto

CursorX.IsUserEnabled               启用游标

CursorX.IsUserSelectedEnabled       启用游标选择区域

CursorX.LineColor                   游标线颜色

CursorX.LineDashStyle               游标线样式

CursorX.LineWidth                   游标线的宽度

CursorX.SelectionColor              游标选择区域的颜色

CursorY相同,其他属性自己试

首先强调一下,只要想选择区域细看曲线图,就一定要启用游标,游标的设置只能在叠加在最上面的ChartArea进行设置,也就是ChartArea[ChartArea.Count-1],。列了这么多属性看一下图更直观:



X轴和Y轴上有游标,可以拖动,可以注意看有个按钮上面有个圆圈,就是向后退,图中的蓝色矩形方块就是用户选择的区域,松开鼠标就会变成该区域的图形。

5. 杂项:Name,没啥好说的

6. 轴Axes!!:非常重要,一个ChartArea有4个轴:主轴X axis、主轴Y(Value)axis、副轴X axis、副轴Y(Value)axis,每个轴属性均相同,只说一个一个轴


                        IsLabelAutoFit                  轴上的标签自动调整

LabelAutoFitMaxFontSize         轴上标签自适应字体大号
                        LabelAutoFitMaxFontSize         轴上标签自适应字体小号

LabelStyle.Angle                标签显示角度

LabelStyle.IsEndLabelVisible    最后一个标签是否显示

其他属性自己试

我的Interval这里设置都是NotSet,没有设置Auto,为什么,自己试就明白了。


                        TextOrientation             轴的标题方向

Title                       轴的名字,X轴是时间轴,Title就是时间

其他属性自己试,简单


                       IntervalAutoMode             间隔是固定值还是随着轴变化,自己试


                      ScaleView                      数据视图,就是当前绘制展开的图!重要!
                      MinSizeType                    游标滚动类型

ScrollBar                      滚动条

ScaleView是数据视图,也就是当前绘制出图表的一个区域,如果用鼠标选择某个区域展开显示,新展开的就又是一个ScaleView,只把它想成当前显示的视图就好理解了。

ScrollBar就是游标,之前我们说的ChartArea.CursorX或Y是也是游标,这里的ScrollBar是滚动条,仔细看两者的属性不难发现,一个是选择区域,一个是拖拽滚动条查看所有数据。


                       这些属性都不是重点,自己试试吧,就是外观设计

不多说了,需要网格的在这里设置就行,感觉设置完了很丑,不过各花入个眼,如下图,还不错哈



             

简单不说
       别忘了,咱们还停留在ChartArea.Axis里呢,这仅是一个轴,有需要的别忘了设置其他的轴哦

C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性的更多相关文章

  1. 九、chart控件的使用(图表数据的展示)

    chart属于老插件网上还有新的插件功能也更多) Chart控件是VS自带的控件,只是比较老了,功能肯定不如现在出来的某些插件强,不过对于简单的显示还是够用:那么现在来看看chart控件的使用方法: ...

  2. Chart控件,chart、Series、ChartArea曲线图绘制的重要属性介绍

    先简单说一下,从图中可以看到一个chart可以绘制多个ChartArea,每个ChartArea都可以绘制多条Series.ChartArea就是就是绘图区域,可以有多个ChartArea叠加在一起, ...

  3. 使用.net 的Chart控件绘制曲线图

    在进行软件开发过程中我们可能会碰到需要生成图表的情况,在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你 ...

  4. javascript曲线图和面积图Line & Area chart控件功能及下载

    Line & Area chart 控件是一款新型的.可用性极强的曲线图和面积图产品.一个您网站的访问者可以放大他感兴趣的一段区域,打开和关闭数值气球,并可显示和隐藏图表.您能创建简单.堆积. ...

  5. ASP.NET中的chart控件绑定SQL Server数据库

    网上很多的chart控件的实例都没有绑定数据库,经过一番摸索后,终于实现了chart控件绑定数据库. 首先,在Visual Studio中建立一个网站,新建一个WebForm项目,名称为ChartTe ...

  6. winform Chart控件 获取鼠标处坐标值方法

    Chart控件本身功能强大,应用广泛,因此其属性.方法也很多.此处介绍在很多应用中需要查看鼠标位置处坐标值的一些方法 1,调用Chart事件  GetToolTip 利用ToolTipEventArg ...

  7. C# chart控件绘制曲线

    在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图.柱状图什么的了. using Syst ...

  8. Chart控件的多种使用方法

    花了近一周时间专门研究.net 3.5平台提供的Chart控件的使用方法,感觉该控件的功能很强大,做出的图表效果也很美观,使用方法也并不复杂.如今先讲下Chart控件的部署及一些基本使用方法. 一.安 ...

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

    http://blog.csdn.net/dream2050csdn/article/details/53510340 chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.A ...

随机推荐

  1. T-SQL查看数据库恢复(RESTORE)时间

    WITH LastRestores AS ( SELECT DatabaseName = [d].[name] , [d].[create_date] , [d].[compatibility_lev ...

  2. FindBugs 入门——帮你减少代码中的bug数

    FindBugs 入门 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 代码缺陷分类 根据缺 ...

  3. union和union all用法

    工作中,遇到同事之前写的oracle语句中有一个union all,并且很多地方都用到了.便在网上查了一下用法,以下是自己的理解. union  (联合)将两个或者多个结果集合并. 在使用时,两个结果 ...

  4. Windows10 会不会成为微软的新起点?

    Because if you change the way you see the world, you can change the world you see. 如果你改变看世界的方式,你就能改变 ...

  5. MySql access denied for user错误

    MySql access denied for user错误 | 浏览:2812 | 更新:2014-11-27 11:16 MySql access denied for user错误 方法/步骤 ...

  6. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  7. 基于Zabbix IPMI监控服务器硬件状况

    基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...

  8. java设计模式之策略模式

    策略模式 定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户(大话设计模式). 策略模式UML图   策略模式代码 古代的各种计谋都是一种策略,这次我们 ...

  9. java设计模式之备忘录模式

    备忘录模式 备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.一听到备忘录这个字的时候想起了小小时打的游 ...

  10. 使用Ecplise git commit时出现"There are no stages files"

    异常   解决方案 进入Window--Preferences--Team--Git--Committing,反选下图红圈部分:   保存后即可出线我们熟悉的提交代码界面啦: