zoukankan      html  css  js  c++  java
  • C#下MSchart的应用总结

    【WinForm】MSChart主要属性

    一、绘图区域ChartAreas

    在一个Chart控件中可增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,可用于多个图表类型。

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

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

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

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

      a.Auto:是否自动对齐。

      b.Height:图表在绘图区内的高度(百分比,取值在0-100)

      c.Width:图表在绘图区内的宽度(百分比,取值在0-100)

      d.X,Y:图表在绘图区内左上角坐标

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

    6.Name:绘图区名称。

    7.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:坐标轴标题对齐方式

    二、数据系列Series

    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:横坐标轴类型

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

    14.YValueType:纵坐标轴类型

    、图例Legends

    MSChart的图例默认不显示,但可进行如下设置:

    1.Alignment:对齐方式

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

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

    4.enabled:是否显示图例

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

    6.Position:图例出现的位置

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

    一、数据源:

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

                    chartData.DataSource = dt;

                    chartData.DataBind();

    二、Series:

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

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

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

    Font                      标签字体设置

         Font.Unit                 个人设置此值为Document,自己体会

         LabelAngle                标签角度,斜多少度,建议就正着

         LabelBackColor            标签背景颜色

         LabelBorderColor          标签边框颜色

          LabelBorderDahStyle       标签边框样式

         LabelBorderWidth          标签边框宽度

         LabelForeColor            标签字体颜色

         其他属性自己试

    4、空白点(EmptyPointStyle):就是连续的数据,譬如X轴对应Y轴没数据,或Y轴对应X轴没数据,这样的数据点可以对其设置相应的属性;

    5、数据源:注意这里是Series的数据源(XValueMember、YValueMembers)

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

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

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

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

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

    9. 杂项:  EmptyPointValue:空数据点的值做平均还是做零处理

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

    10. 轴:也就是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和哪个对齐

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

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

    注意:

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

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

    4.      游标:CursorX和CursorY,就是横向和纵向滚动条, 首先强调一下,只要想选择区域细看曲线图,就一定要启用游标,游标的设置只能在叠加在最上面的ChartArea进行设置,也就是ChartArea[ChartArea.Count-1],X轴和Y轴上都可以有游标,可以拖动,可以注意看有个按钮上面有个圆圈,就是向后退,滑动用户选择的区域,松开鼠标就会变成该区域的图形;

    5.      轴Axes!!:非常重要,一个ChartArea有4个轴:主轴X axis、主轴Y(Value)axis、副轴X axis、副轴Y(Value)axis,每个轴属性均相同;属性:标签、间隔(Interval)、标题、数据视图(ScaleView)、滑动条(ScrollBar),外观、网络刻度线等;

    注意:  ScaleView是数据视图,也就是当前绘制出图表的一个区域,如果用鼠标选择某个区域展开显示,新展开的就又是一个ScaleView,只把它想成当前显示的视图就好理解了。ScrollBar就是游标,之前我们说的ChartArea.CursorX或Y是也是游标,这里的ScrollBar是滚动条,仔细看两者的属性不难发现,一个是选择区域,一个是拖拽滚动条查看所有数据。

  • 相关阅读:
    _ 下划线 Underscores __init__
    Page not found (404) 不被Django的exception中间件捕捉 中间件
    从装修儿童房时的门锁说起
    欧拉定理 费马小定理的推广
    线性运算 非线性运算
    Optimistic concurrency control 死锁 悲观锁 乐观锁 自旋锁
    Avoiding Full Table Scans
    批量的单向的ssh 认证
    批量的单向的ssh 认证
    Corrupted MAC on input at /usr/local/perl/lib/site_perl/5.22.1/x86_64-linux/Net/SSH/Perl/Packet.pm l
  • 原文地址:https://www.cnblogs.com/ImNo1/p/7009960.html
Copyright © 2011-2022 走看看