• 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是滚动条,仔细看两者的属性不难发现,一个是选择区域,一个是拖拽滚动条查看所有数据。

  • 相关阅读:
    洛谷 P1077 摆花
    洛谷 P2323 [HNOI2006]公路修建问题
    2017.10.17 模拟赛
    【渗透测试小白系列】之BurpSuite爆破High级别的DVWA(含CSRF-Token防爆破程序)
    【漏洞复现】之sudo提权漏洞(CVE-2019-14287)复现
    【漏洞复现】Maccms潜藏后门分析复现
    杂乱的计算机网络基础
    简述数据库管理
    【漏洞复现】之微信DLL劫持反弹shell复现
    【渗透测试小白系列】之简单使用Ettercap实现DNS劫持
  • 原文地址:https://www.cnblogs.com/ImNo1/p/7009960.html
Copyright © 2020-2023  润新知