文档章节

TeeChart Pro VCL/FMX教程(六):使用系列(二)

x
 xiaochuachua
发布于 05/27 14:16
字数 1223
阅读 6
收藏 0

下载TeeChart Pro VCL/FMX最新版本

在图表上混合系列类型

    TeeChart Pro提供了一个空的Chart Canvas作为数据系列的背景。这意味着没有预定义图表类型。您可以将所需的图表类型定义为要显示的系列类型的混合。由于某些系列类型的特殊性质,在图表上混合使用一些系列类型是不切实际的。当您添加新系列时,TeeChart会通过在图表库中显示不适合的系列类型来帮助您。您可以在一个图表中放置的系列数量没有实际限制。

添加新系列

    使用图表编辑器(参见教程1)或按代码添加系列。

procedure TForm1.Button2Click(Sender: TObject);
var tmpLineSeries:TLineSeries;
begin
  tmpLineSeries:=TLineSeries.Create(self);
  Chart1.AddSeries(tmpLineSeries);
  tmpLineSeries.FillSampleValues(10);
end;

选择系列的轴

    添加到图表中的系列将自动将左轴和下轴作为参考轴。您可以通过选择相关系列的“系列常规”页面来更改图表编辑器中的参考轴。有4个轴可供选择,Top,Left,Bottom和Right。通过代码,更改轴将如下所示:

With Series1 do
begin
 HorizAxis := aTopAxis;
 VertAxis := aRightAxis;
end;

    每个轴可以关联1个以上的系列。TeeChart将决定适合与Axis匹配的系列的最佳比例,但您可以自己更改Axis音阶(参见Axis Tutorial)。可以添加附加轴,它们将复制与前4个轴相对应的刻度(参见教程部分附加轴)。

连接系列

    您可以使用Series作为另一个Series的数据源。通过设置第二系列的数据源,可以使用图表编辑器完成此操作。转到“系列”选项卡“数据源”页面。选择“Function”作为数据源类型。将出现两个列表框,可用系列和选定系列。选择要用作当前系列的数据源的系列,然后在上面名为Function:的Combobox中,选择Copy作为功能类型。请注意,以这种方式,任何Series都可以定义为其他Series的函数,Function Type可以是Function组合框中可用的列表中的任何一个。要通过代码执行相同操作,请参阅下文:

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 With Series2 do
 begin
   Datasource:=Series1;
   SetFunction(TAverageTeeFunction.Create(Self));
   FunctionType.Period := 4;
   CheckDatasource;
 end
end;

更改系列订单  

    使用图表编辑器可以非常轻松地更改系列顺序。转到编辑器的首页,突出显示要移动的系列。使用右侧的箭头按钮以系列顺序向上或向下移动系列。系列订单将决定系列在图表中相对于其他系列的相对显示位置。通过代码使用SeriesList属性或ExchangeSeries方法。

Chart1.ExchangeSeries(0, 1);  //Change Series(0) with Series(1) in the index order

    注意。交换Series后,系列的索引将被更改。因此,如果代码重新运行,上面的代码行将永久地交换2系列'0'和'1',因为0变为1,1变为0。

将系列设置为“Active:=False”将从图表中隐藏系列,但保持其数据内容不变。

系列value表

    TeeChart系列通过TChartValueList组件将其值存储在可访问和可修改的Valuelist中。

访问系列值

    您可以访问列表中的任何值:

ShowMessage(FloatToStr(Series1.XValues[3]));
//Displays value of 4th point (index starts at 0) in Series1

    以这种方式访问的值可用于设置系列数据的陷阱条件:

 With Series1 do
 begin
   For t := 0 To Count - 1 do
   begin
     If YValues[t] > 9 Then
       ShowMessage('Value: ' + FloatToStr(XValues[t])
       + ', ' + FloatToStr(YValues[t]) + ' exceeds limit');
   end;
 end;

    可以通过一些Series方法和几个Chart事件使用的PointIndex点获得相同的值。

procedure TForm1.Series1Click(Sender: TChartSeries; ValueIndex: Integer;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Showmessage('ValueIndex is: ' + IntToStr(ValueIndex));
  Showmessage('Point''s Y value is: ' + FloatToStr(Sender.YValues.Value[ValueIndex]));
  Chart1.CancelMouse:=True;  //Use CancelMouse to prevent Zoom event activating
end;

    单击3D系列时,只有前平面上的单击才会被识别为系列单击。

使用值的示例

    此代码根据用户的鼠标单击修改BarSeries Bar的值。

//Use the OnClickSeries or OnClickBackground event to determine where the user has clicked.procedure TForm1.Chart1ClickBackground(Sender: TCustomChart;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If (Int(Chart1.Axes.Bottom.CalcPosPoint(X)) > -1) Then
  Case Ord(Button) of
  0 : UpdatePoint(Chart1.Axes.Bottom.CalcPosPoint(X), Chart1.Axes.Left.CalcPosPoint(Y));
  end;
end;

procedure TForm1.Series1Click(Sender: TChartSeries; ValueIndex: Integer;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  UpdatePoint(ValueIndex, Chart1.Axes.Left.CalcPosPoint(Y));
  Chart1.CancelMouse:=True;  //Use CancelMouse to prevent Zoom event activatingend;

    在这两种情况下,请调用UpdatePoint Sub例程来修改Bar的值:

Procedure TForm1.UpdatePoint(Bar, Y : Double);
begin
  If Round(Bar) < Series1.Count Then
  begin
    Series1.YValues[Round(Bar)] := Int(Y);
    Chart1.refresh;
  end;
end;

本文转载自:http://www.teechart.net/docs/teechart/vclfmx/tutorials/UserGuide/Tutorials/tutorial6.htm#MixingSe...

x
粉丝 0
博文 225
码字总数 49214
作品 0
私信 提问
Steema Software将携TeeChart VCL年度版参加“ITDevCon 2013”

11月14、15日,“ITDevCon 2013”将在意大利城市维罗那举行,西班牙厂商Steema Software将带着旗下著名图表控件TeeChart VCL参加。Steema Software表示,他们很高兴参加“ITDevCon 2013”,他...

牛奶哎营养
2013/10/24
40
0
使用跨平台图表控件TeeChart如何从DAT或TEXT文件中导入数据

大多数开发人员在使用TeeChart进行开发的时候,都需要访问包含在文本文档中的一些数据,本次教程将详细讲解如何去实现这一步骤。 文本文件通常包含使用空格键或者是TAB键分隔开的数字和文字:...

裸奔的火腿肠
2014/02/18
294
0
TeeChart Pro VCL/FMX教程(四):轴控制(下)

下载TeeChart Pro VCL/FMX最新版本 附加轴 复制轴 TeeChart提供5个轴与数据系列相关联:Left、Top、Bottom、Right和Depth。向图表添加新系列时,您可以定义系列应与哪些轴相关(转到“选项卡...

xiaochuachua
05/15
8
0
TeeChart Pro VCL/FMX教程(六):使用系列(一)

下载TeeChart Pro VCL/FMX最新版本 系列类型 该TChartSeries组件是所有系列类型的共同父类 系列类结构 作为TeeChart组件库结构的一小部分背景,下面是系列组件及其结构的说明。下图显示了Tee...

xiaochuachua
05/23
21
0
TeeChart Pro VCL/FMX教程(七):使用函数(一)

下载TeeChart Pro VCL/FMX最新版本 函数类型 函数特点 TeeChart Pro功能是一个系列,几乎可以是任何系列类型,应用代数函数,数据源是另一个图表系列。 所有函数都派生自TTeeFunction组件并继...

xiaochuachua
05/29
3
0

没有更多内容

加载失败,请刷新页面

加载更多

矩阵中的路径

判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向上下左右移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路...

Garphy
25分钟前
4
0
Hibernate 5 Maven 仓库的 Artifacts

Hibernate artifacts 官方发布的仓库在 JBoss Maven repository 中。Hibernate 发布的 artifacts 也会同时同步到 Maven Central 仓库中,这是一个自动同步进程(可能会有一些延迟)。 Hibern...

honeymoose
今天
5
0
如何学习uni-app?

uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。 开发者通过编写 Vue.js 代码,uni-app 将其编译到iOS、Android、微信小程序、H5等多个平台,保证其正确运行并达到优秀体验。 <templ...

达叔小生
今天
6
0
OSChina 周一乱弹 —— 后来马云就一心想挣钱了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑:《空帆船》- 朴树 《空帆船》- 朴树 手机党少年们想听歌,请使劲儿戳(这里) @webw :第二次被锁在电梯里了 上次你忘带电梯卡, ...

小小编辑
今天
1K
15
关于does not give a valid preprocessing token

#define VFUNC(self) ((##self##)->_vptr) 这样在gcc下会编译失败, VC不会 报pasting ) does not give a valid preprocessing token 据说是因为版本问题 解法:去掉## define VFUNC(self) (......

shzwork
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部