原文有备份,如有错误和需要改进的地方,请不吝指正会继续修改的

8个月没写博客了- -,一来是有不想继续干开发的想法,二来是赖的写,三来还是不想总结。所以为了继续坚持自己的开发和总结的信念,总结一下C# chart控件的一些基本属性,由于属性太多了,一时半会儿写不完,以后继续补充,这里总结重要的常用的属性

为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小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. C#使用chart控件设置Series名称显示的位置

    默认显示如图所示,Series的名称显示在右边,它会将下方空间挤掉,使图表只能显示在左侧,而右侧大部分地方都是空白的.当图很宽的时候看着会很不舒服. 要调整它的位置打开chart1中的legends集 ...

  2. C#中Chart控件的一些由浅至深的理解

    最近在做这样一个桌面应用程序,从公司后台服务器查询后,获取到设备上报的数据(每条都是字符串+JSON的形式),其中字符串里包含了设备名称.上报时间这两条信息,JSON中则包含了数据上报类型.重点关注的 ...

  3. 微软Chart控件下载安装及应用实例

    来源:csdn博客 发布时间:2010-01-15 浏览:2943人次 字体:[大 中 小] 微软在.NET 3.5的时候出了一个Chart控件,但是那时候要单独安装才可以使用,在.NET 4.0中, ...

  4. C#chart控件绘制折线图、柱状图、饼图、雷达图

    转载来源:https://blog.csdn.net/u011854789/article/details/82946553 参考链接: http://www.cnblogs.com/winshe/a ...

  5. C# Winform Chart控件用法6之雷达图

    1.ChartAreas属性 ChartAreas属性指绘图区,一个控件可以有多个绘图区,比如我要在同一个控件内显示饼图和柱状图,肯定不能放在同一个ChartAreas区域内,应该在同一个Chart控 ...

  6. C# Winform Chart控件用法5之Bar图

    1.ChartAreas属性 ChartAreas属性指绘图区,一个控件可以有多个绘图区,比如我要在同一个控件内显示饼图和柱状图,肯定不能放在同一个ChartAreas区域内,应该在同一个Chart控 ...

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

    System.Windows.Forms.DataVisualization.Charting 命名空间 System.Windows.Forms.DataVisualization.Charting ...

  8. C# chart控件基础使用

    基本介绍:chart(图表) 功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器): 需要说明 一个chart可以包含多个chartArea. chartArea是具体的坐标区域 ...

  9. c#样条曲线命令_C# chart控件绘制曲线

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

最新文章

  1. 2018-3-1 算法学习部分
  2. 基于Mean-shift算法跟踪对象
  3. Analyzer tool(MAT)分析JVM内存泄露案例
  4. 无意间看到Pure-Mvc记录下
  5. access开发精要(6)-计算
  6. C++继承中的对象模型
  7. mantis apache mysql_Debian下mysql5+php5+apache2+mantis服务器升级
  8. java领域模型设计实例_Java 开发架构篇:DDD 模型领域层决策规则树服务设计
  9. php地名转换成拼音,php汉字转拼音_php中怎么将中文转换拼音
  10. ios 请求头设置token_AFNetworking的请求头设置(token)
  11. 计算机组成原理中CPI、MIPS、CPU执行时间、主频等计算
  12. 小米手机-解BL锁+开ROOT权限
  13. cloudera mysql_安装cloudera manager使用mysql作为元数据库
  14. 美国三大股指再创新高:纳指开盘上涨0.29%
  15. My SQL中PK、NN、UQ、BIN、UN、ZF、AI、G所代表的意义
  16. Java绘制图形(正方形/三角形/圆/网以及填充颜色)
  17. ​治理 V20 领导应如何支持
  18. TRS复合矩阵的拆解
  19. Copula理论学习(一)----引例
  20. 怎么查看CAD图纸?CAD建筑图纸有什么快速看图的技巧吗?

热门文章

  1. JAVA复习5(总结+循环链表)
  2. svn 添加目录 linux,linux-现有目录的SVN设置
  3. js打乱数组的顺序_如何用 js 实现一个类似微信红包的随机算法
  4. vb net excel 剪贴板 粘贴_12-2-Excel快速编辑行列的10条经验
  5. ad元件定位孔放在哪一层_打造个人IP系列(4)——确立定位 搭建人设(上)
  6. 编程必备的32个修养,你占了几个?
  7. 我们学的技术会过时吗?甚至被淘汰?
  8. 电子设计竞赛(三)-SPWM与PID
  9. verilog对YCrCb转换灰度设计及仿真
  10. Nexys4DDR+OV7670实现sobel算子边缘检测系统