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

TeeChart Pro提供了一个空的Chart Canvas作为数据系列的背景。这意味着没有预定义图表类型。

下载TeeChart Pro VCL/FMX最新版本

    已加入在线订购,现在抢购可立享特别优惠!!!

在图表上混合系列类型

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

添加新系列

procedure TForm1.Button2Click(Sender: TObject);var tmpLineSeries:TLineSeries;begin  tmpLineSeries:=TLineSeries.Create(self);  Chart1.AddSeries(tmpLineSeries);  tmpLineSeries.FillSampleValues(10);end;
选择系列的轴
With Series1 dobegin HorizAxis := aTopAxis; VertAxis := aRightAxis;end;

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

连接系列
procedure TForm1.BitBtn2Click(Sender: TObject);begin With Series2 do begin   Datasource:=Series1;   SetFunction(TAverageTeeFunction.Create(Self));   FunctionType.Period := 4;   CheckDatasource; endend;
更改系列订单  
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 activatingend;

    单击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);beginIf (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;

购买TeeChart Pro VCL/FMX正版授权,请点击“咨询在线客服”哟!

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月24日
下一篇 2019年4月24日

相关推荐

发表回复

登录后才能评论