标题:VFP 探讨之 OLE 控件(八):图表控件(中)—控件中的对象及其属性
只看楼主
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
结帖率:100%
 问题点数:0 回复次数:8 
VFP 探讨之 OLE 控件(八):图表控件(中)—控件中的对象及其属性
    图表控件很复杂,主要是因为其对象众多,有些对象还有子对象,甚至二级、三级子对象,各种/各级对象还有自己的属性、事件、方法。本期就与大家探讨一些常用对象及其属性。

    首先,熟悉一下图表各部分的名称(以二维图表的名称为例):
图表区:指整个图形的区域,该区域包含了图表的一切组件;
绘图区:指数据系列所在的区域(不含图例、图表标题、图表背景墙等);
坐标轴:坐标是指确定平面上或空间中某个位置的有次序的一个或一组数。坐标轴就是这种数据集合的标尺。图表中的坐标轴有X轴、Y轴、次Y轴(也称第二Y轴)、Z轴(只有3D图表包含);
刻度线:坐标轴上指示数值的小线条;
图例:图表上所用符号的说明;
数据系列:一组具有相同意义的数据集合。
    部分名称图解:

    图解中的引用方式是相对引用,省略了最前面的图表控件对象名。图表控件对象的名称可以象其它标准控件一样,在FoxPro的属性窗口中设置,属性名是Name。比如:现在把图表控件对象的Name属性设置成“统计图”,则图解中对X轴的绝对引用应该是“统计图.Plot.Axis(0)”;对图例的引用是“统计图.Legend”。
    数据系列的引用有点复杂,每个数据系列都属于数据系列集合,所以对单组(不是单个)数据系列的引用格式是:统计图.Plot.SeriesCollection(x).DataPoints(-1)。其中,“x”在具体使用的时候要换成整数,这个整数的意思是指定需要引用第几组的数据。比如在图解中,标注指向的是第3组,即,所有绿色的数据系列(不仅仅是被标注指向的这根柱子),引用的格式是:统计图.Plot.SeriesCollection(3).DataPoints(-1)。后面“DataPoints(-1)”对象中括号中的数字固定为“-1”。

    图表控件的部分常用属性
    ChartType:整数型,返回或设置图表的类型。0:3D柱形图;1:2D柱形图(默认);2:3D折线图;3:2D折线图;4:3D面积图;5:2D面积图;6:3D阶梯图;7:2D阶梯图;8:3D组合图;9:2D组合图;14:2D饼图;16:2D XY散点图。实际上,MSChart控件中还有很多图表类型(比如,3D簇状柱形图、条形图(横向的柱形图)等等),但都不被FoxPro支持;
    ShowLegend:逻辑型,返回或设置图表控件是否显示图例;
    RowCount:整数型,返回或设置图表控件的行数,在二维图表中可以理解为组数(比如图解中的控件就分了4组)。因为组数与数据源表的行数关联,所以被称为行数;
    Row:整数型,返回或指向图表控件当前处于第几行,可以理解为返回或指向图表的第几组;
    RowLabel:字符型,返回或设置行标签,也就是组标签。比如,图解中的“2010”、“2011”等;
    ColumnCount:整数型,返回或设置图表控件的列数,可以理解为数据系列的数量(比如图解中的控件就有5个数据系列)。因为数据系列数量与数据源表的列数关联,所以被称为列数;
    Column:整数型,返回或指向图表控件当前处于第几列,可以理解为返回或指向哪个数据系列;
    ColumnLabel:字符型,返回或设置列标签,也就是每个数据系列的名字。这些名字显示在图例中,通常与数据源表的字段名关联。比如,图解中的“普通物理(A)上”等;
    Data:数值型,返回或设置某个数据点的值。一般操作方法是:用Row和Column两个属性指定好图表接收源数据的位置,再用该属性以赋值命令获取源数据。获取完了以后,图表控件就能显示这个数据了;
    Text:字符型,返回或设置标题、数据标签等对象的文本内容,类似于FoxPro标准控件的Caption属性。比如:统计图.Plot.Axis(0).AxisTitle.Text="课程名称",设置X轴的标题为“课程名称”;
    Name:字符型,返回或设置字体对象(VtFont)的名称。比如:统计图.Plot.Axis(0).AxisTitle.VtFont.Name="黑体",设置X轴标题的字体为黑体;
    Size:单精度数值型(Float),返回或设置数据点标签对象(Marker)或字体对象的大小;
    Style:整数型,取值区间根据所用对象的不同而不同。可用于笔刷(Brush)、背景外观(Fill)、图表周围窗体元素外观(Frame)、数据点标签(Marker)、线条或边线(Pen,MajorPen,MinorPen)、图表元素阴影外观(Shadow)、刻度线(Tick)、字体(VtFont)、权重(Weighting)等对象。对于字体对象,它描述了字体的风格(粗体、斜体),取值区间是[1,3];对于线条对象,它描述了线条的风格(实线、虚线等等),取值区间是[0,9];
    Type:整数型,取值区间是[0,2],返回或设置坐标轴尺度对象(AxisScale)的类型(线性、对数、百分比),通常用在数值轴上。

    图表控件的部分方法:
    Set:针对各种对象进行相应的设置,比如:可以设置填充色对象(FillColor)的颜色—Set(0,0,255)。

    关于图表控件的常量:
    图表控件中设置属性值时,很多都会用到常量。比如,前面提到的对X轴的引用是“统计图.Plot.Axis(0)”。其实,真正的用法应该是“统计图.Plot.Axis(VtChAxisIdX)”,括号里红色的“VtChAxisIdX”就是一个常量,它在MsChart控件中已被定义为0。相应的,还有:VtChAxisIdY,定义为1,代表Y轴;VtChAxisIdY2,定义为2,代表第二Y轴;VtChAxisIdZ,定义为3,代表Z轴。说到这里,不得不提一下,图表控件中定义的所有常量在FoxPro中都不被支持(但可被VB支持)。所以,我们只能运用常量名称所代表的真正数值。不过,个人认为,还是用数值比较方便,缩短了代码长度。如果要标注那些数值的意义,只要用注释语句写出即可。
    今天就聊到这里了,下次弄个实例和大家探讨。


[ 本帖最后由 taifu945 于 2014-5-14 14:59 编辑 ]
收到的鲜花
  • tlliqi2014-05-14 16:38 送鲜花  30朵   附言:谢谢
搜索更多相关主题的帖子: 坐标轴 空间 平面 
2014-05-14 14:53
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
摆弄VFP那么多年还从来没有弄过图像,应该好好学习一下。

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-14 15:24
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用hu9jj在2014-5-14 15:24:36的发言:

摆弄VFP那么多年还从来没有弄过图像,应该好好学习一下。
我也是才研究不久。把研究的东西贴上来,大家看看有什么补充或更正。
2014-05-14 15:48
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
你的图上标注是用什么软件做的?很不错嘛!

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-14 16:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
学习一下
2014-05-14 16:20
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用hu9jj在2014-5-14 16:00:15的发言:

你的图上标注是用什么软件做的?很不错嘛!
Word 2013做的呀,做完后用picpick软件截图。
2014-05-14 16:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
需要学习的东西不少啊

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-14 17:19
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
学习中……

泉城飞狐
2014-05-14 19:04
flydaydream
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-6-18
得分:0 
这些图表,能否导出到word中呢?
2018-04-26 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431520-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.191786 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved