假设c1Chart1为Chart控件的一个实例。
一、基本框架图
二、主要外层属性(即this.c1Chart1的主要属性)
1、Header和Footer,上标题和下标题。位于this.c1Chart1.Header和this.c1Chart
2、Legend。图例,位于this.c1Chart.Legend。
3、ChartArea。图表区,位于this.chartLSQS.ChartArea。包括图形、坐标轴、坐标轴标题等内容。
4、chartGroups,图形组,位于 this.c1Chart1.ChartGroups,包括两个组(只有this.c1Chart1.ChartGroups[0]和 this.c1Chart1.ChartGroups[1],不能添加和删除),每个图形组都有绘图类型(如折线图、饼图等)、绘图数据。第一个图形组 chartGroups[0]是针对主Y轴this.c1Chart1.ChartArea.AxisX进行数据及绘图类型操作,第二个图形组 chartGroups[1]是针对副Y轴this.c1Chart1.ChartArea.AxisX进行操作。
三、ChartArea的主要成员(即this.c1Chart.ChartArea的主要属性)
1、AxisX, AxisY和AxisY2,图形坐标。大多数图形含有x、y两个坐标;某些图形含有x、y、y2三个坐标;某些特殊图形没有坐标,如饼图。其主要子属性和方法包括:
(1)Alignment,设置坐标轴标题对齐方式,如中间对齐、左对齐、右对齐,或上对齐、下对齐。当且仅当(20),即text属性不为空时有用。
(2)AnnoFormat,设置坐标轴刻度显示格式,可设为数字格式和日期时间格式。对于数字格式,可设为常规数字、货币、指数、百分数、周期和十六进制数字。对于日期时间格式(dateTime),可设为长日期、短日期、长时间、短时间、国际标准时间等格式。
(3)AnnoFormatString。当AnnoFormat设为数字时,可以设置数字字符串,如"0.00"、"0.00%",当AnnoFormat设置为日期时间格式,则可设时间字符串,如"yyyy-MM-dd"。
(4)AnnoMethod。坐标轴刻度值标签可设置两种状态:ValueLabels和 Values。ValueLabels表示坐标轴标签可设为自定义字符或其他形式,见(23)。Values表示坐标轴标签只为数字。
(5)AnnotationRotation。将坐标轴刻度标签旋转角度,范围在+-30°到+-60°之间。
(6)AutoMajor、AutoMinor。坐标轴主、副刻度是否自动设置,默认为true。
(7)AutoMax、AutoMin。坐标轴最大、最小刻度值时候自动设置,默认为true。
(8)AutoOrigin。自动设置原点,默认为true。
(9)Compass。坐标轴及刻度显示方向,x轴一般设为上(north)、下(south);y轴一般设为左(West)、右(East)。
(10)GridMajor、GridMinor。进行主、副网格的颜色、线型、间距、粗细、是否显示,若不设置其子属性spacing或将spacing设为0,网格的间距跟刻度UnitMajor、UnitMinor一一对应。若设置spacing,则网格间距依赖于spacing。
(11)IsLogarithmic。设置坐标轴是否为对数坐标轴。
(12)LogarithmicBase。double型,当IsLogarithmic为true时,设置对数的底数,若不设此属性,则底数默认为10。(注意:此属性没有错误捕获和输入限制,若程序中将底数设置为小于零,程序将立即崩溃!)
(13)Max、Min。坐标的最大、最小刻度值。设置Max、Min时,自动将AutoMax、AutoMin设为false。
(14)Name。只读属性,返回坐标轴名称,如X、Y、Y2。
(15)OnTop。布尔值,表示坐标轴是否显示在整个图形的最上层。
(16)Origin。double型,设置坐标原点。给其赋值时,自动将AutoOrigin设为false。
(17)Reverse。布尔值,默认为false。设置为true时,该坐标轴数值大小顺序颠倒。
(18)Rotation。将该坐标轴的标题(即text属性)旋转一定角度,可设为0°、90°、180°、270°。
(19)ScrollBar。设置坐标轴滚动条的大小、值、样式(如普通式、平板式、xp式)及是否显示等属性。
(20)Text。设置坐标轴标题。
(21)TickLabel。设置刻度值标签的显示方法,其值为None表示不显示刻度值标签;为High表示刻度值标签靠近最大值;为Low表示刻度值标签靠近最小值;为NextToAxis表示刻度值标签靠近轴(在我试的过程中,后三个好像没什么作用,可能没找着用的方法)。
(22)UnitMajor、UnitMinor。设置主、副刻度的单位长度,double。
(23)ValueLabels。设置自定义坐标轴刻度标签,当且仅当前面属性AnnoMethod=ValueLabels时有效,见属性(4)。可添加自定义标签,对每个标签改变其颜色、显示字符及对应数值等。
(24)Visible。是否显示坐标轴及标签。bool。
(25)TickMajor、TickMinor。设置坐标轴刻度方向,分向内、向外和交叉。
(26)GetMax()、GetMin()。得到坐标轴的最大值或最小值。
(27)SetMinMax(object newMin,object newMax)。同时设置最小值和最大值。
2、Inverted。对横轴、纵轴进行翻转。bool。
3、Margins。指绘图区相对于图表区的空白。即PlotArea相对于ChartArea的空白,可调上、下、左、右的空白。
4、PlotArea。绘图区,指实际绘图的区域,不包括坐标轴、坐标轴标签、坐标轴标题及Margins空白的区域。详细子属性如下:
(1)AlarmZones,设置警告区域,将值域设置成各种不同类型的警告区域,如将警报级别由高到低分为蓝色警报、黄色警报、橙色警报、红色警报。其子成员分别为:
Add()添加一个定义好的警报区域
AddNewZone()添加一个新警报区域
LowerExtent、UpperExtent,double,某警报值域下限和上限,为y轴的值。
NearExtent、FarExtent,double,某警报响应区间的边值,为x轴的值。
BackColor。某警报区的背景表现颜色。
PatternStyle。某警报区的背景图案样式。
PatternVisible。是否显示某警报区的背景图案,bool。
Visible。是否显示某警报区,bool。
(2)Boxed,是否显示绘图区域边界,bool。
(3)GradientStyle和HatchStyle。渐变填充或网格填充绘图区域背景。只能同时使用二者之一。
(4)BackColor和BackColor2。当GradientStyle和HatchStyle均未设置时,BackColor起作用;当GradientStyle和HatchStyle设置其一时,二者共同起作用。
(5)Opaque。设置绘图区域背景是否不透明,若否,则绘图区域完全透明,(3)、(4)属性设置皆不起作用。
(6)View3D。当图形格式设置成为3D样式时,如3d柱状图,调整3D效果深度、高度、角度、阴影类型等。
5、Style。调整图表区样式。其子属性或方法如下:
(1)Autowarp。文字自动换行。在ChartArea中好像不能直接输入文字,故此属性疑无用。
(2)BackColor、BackColor2、GradientStyle、HatchStyle。功能及用法同4中相关内容。
(3)Border。可设置图表区边框样式,包括线型、厚度、圆角等。加强了图表区的美观度。
(4)其他属性略。可参考4中相关内容。
四、ChartGroups的主要成员(即this.c1Chart.ChartGroups的主要属性)
该组件只定义了两个图形组,其中Group0对应x、y坐标轴;Group1对应x、y2坐标轴。ChartGroups主要用来设置图表中的数据。
1、ChartType,选择图形类型,如线图、饼图、柱状图、甘特图等。
2、各中图形类型设置属性。包括Pie、Bar、Polar、Radar、Bubble、HiLoData、Gantt属性。当1被赋予除线形、面积型类型外的某类型,则与之对应的属性设置有效。
3、DrawingOrder。绘图优先级,值越大,其对应的group就越先被绘图。int。
4、Is100Percent。仅当图形类型为柱状图或面积图,并为堆(stack)形式的时候,时有效,如设成true,则图形占据100%值域,然后将y轴定义为百分比轴,并按照各series的比例重新分配空间。其他图形类型无效。bool。
5、LegendReversed,是否对图例中各曲线(series)进行反排序。bool。
6、ShowOutLine,是否显示图形外缘。此属性只对饼图、柱状图、面积图有效,bool。
7、Stacked,各曲线(series)是否按堆排列,bool。
8、Use3D,各曲线(series)是否显示为三维样式。若是,则调整上文标题三?4?(6)中View3D有关参数可调整三维显示样式。若否,上述调整无效。
9、ChartData属性,设置图表核心数据。其子成员如下:
(1)FunctionsList,添加和设置特定定义的图形。具体用法以后研究。
(2)Hole,设置数据空洞(data hole),其值表示x=Hole时,所对应的图表上的点无值,默认为一巨大的值,double。
(3)Layout,设置数据排列方法,可设为常规排列法和数组排列法。尚未明白其具体用处。
(4)MaxX、MaxY、MinX、MinY。只读属性,返回数据中的x轴最大、最小值,y轴最大、最小值。
(5)PointStyleList,集合,可设置图表中某一数据点标志的样式、颜色,如方框型、原点型、三角形、菱形等。
(6)SeriesList,集合,当需要在同一x轴坐标下显示不同的几条曲线,每条曲线及为一个Series。如图共有4个Series。
SeriesList可进行添加、删除曲线(series)等操作,对某条曲线(Series)进行设置的子成员如下:
[1] AutoEnumerate,当为true,且不想为该曲线的x轴赋值时,自动赋x轴的值。
[2]Display,设置是否显示该曲线,可设为显示、隐藏(但图例还在)、不显示等。
[3]FitType,设置该曲线类型,如折线、样条曲线、贝赛尔线,当图形为线型时有效。
[4]Label,设置标题,在图例上显示。
[5]LegendEntry ,设置该曲线的标题、线型、数据点标志是否在图例上显示。
[6]Length、MaxX、MaxY、MinX、MinY。只读属性,返回曲线中数据点的点数、x最大最小值、y最大最小值。
[7]LineStyle,设置该曲线线型(对柱状图来说,为填充类型)、颜色、厚度等属性。
[8]Offset,只在饼图显示中有效,表示饼图中为了突出显示某块内容,便宜出整个饼图的距离。
[9]PointData,输入各个点的数据,内有方法copydatain(),可从数组中直接给图形赋值。
[10]SymbolStyle ,该线上所有数据点的标志。
[11]Tag,该线的标签顺序??用法不明
[12]X、Y、Y1、Y2、Y3。输入各个轴的数据,内有方法copydatain(),可从数组中直接给图形赋值。