TeeChart for PHP教程(六):与系列一起工作(下)

本教程将会介绍系列的架构和编程。主要的内容分为系列类型,在图表上可混合系列类型,系列价值表和系列事件,而本节主要介绍的是在图表上可混合系列类型,系列价值表和系列事件。

    TeeChart for PHP包含100%的PHP源代码。它支持PHP5及更高的版本。它可作为一个调色板组件整合到针对PHP的Delphi编程环境中,从而让其他人在运行时以创建组件的方式来引用。第一个版本提供17种图表类型(2D和3D的多种组合),11个数学函数和一些图表工具组件以扩展功能。

TeeChart for PHP试用版


    本教程是TeeChart for PHP教程中与系列一起工作这一节。本章节的内容主要分为以下几个部分:

  1. 系列类型

  2. 在图表上可混合系列类型

  3. 系列价值表

  4. 系列事件


    上一节我们介绍到了与系列一起工作(上)的系列类型,这一章节我们会接着介绍这一部分内容的下篇,内容包括在图表上可混合系列类型,系列价值表和系列事件。

在图表上可混合系列类型

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

添加新系列

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

$bar1 = new Bar($tChart1->getChart());$bar1->fillSampleValues(10);

选择系列的轴

    添加到图表中的系列将自动将左轴和下轴作为参考轴。您可以更改参考轴,有4个轴可用:顶部,左侧,底部和右侧。通过代码,更改轴将如下所示:

$bar1->setHorizontalAxis(HorizontalAxis::$TOP);$bar1->setVerticalAxis(VerticalAxis::$RIGHT);

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

连接系列

您能够把一个系列当做另一个系列的数据源,通过以下代码完成:

$bar1 = new Bar($tChart1->getChart());$bar1->fillSampleValues();$line1 = new Line($tChart1->getChart());$average1 = new Average();$line1->setFunction($average1);$line1->setDataSource($bar1);$line1->checkDataSource();

    关于如何去使用Teechart函数的更多信息可以参加我们的下一章节内容—TeeChart for PHP教程(七):函数的使用。

更改系列订单

    更改系列订单非常简单。系列订单将决定系列在图表中相对于其他系列的相对显示位置。使用SeriesList属性或ExchangeSeries方法能够达到这个效果。

$tChart1->exchangeSeries(0,1);  //Change Series(0) with Series(1) in the index order

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

将系列设置为活动=假,系列将会从图表中隐藏,但保持其数据内容不变。

系列价值表

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

使用值的示例

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

upDatePoint($valueIndex,$tChart1->getAxes()->getLeft()->calcPosPoint($e->Y));

    调用UpdatePoint Sub例程来修改Bar的值:

private function upDatePoint($bar, $Y){    if($bar < $tChart1->getSeries(0)->getCount())   {      $tChart1->getSeries(0)->getYValues()->setValue($bar,Y);   }}

系列事件

OnGetAxisLabel

    在我们想要更改或向一些或者所有轴标签添加额外文本的情况下,必须使用OnGetAxisLabel事件,它允许获取将要显示的LabelText并在需要时修改它。

    在这里我们可以看到一个使用示例:

<hp//Includesinclude "../../../sources/TChart.php";function handleLoad($sender, $args){// print 'object '.get_class($sender).' loaded with '.count($args).' args!<br />';$sender->getHeader()->setText("OnLoad Event");}function handleUnLoad($sender, $args){gt;<br><br><hpprint 'object '.get_class($sender).' unloaded with '.count($args).' args!<br />';gt;</br><hp}// Args contains axis, index order to be displayed, labelTextfunction handleGetAxisLabel($sender, $args){// If it's going to display left axis labels if ($args[0] === $sender->getAxes()->getLeft()) { // if the left axis label value is bigger than 50 add extra characterif ((int)$args[2] > 50) {$args[0]->getLabels()->labelText = $args[2].'-e';}} else{if ($args[0] === $sender->getAxes()->getBottom()) { if ((int)$args[2] < 4) {// if value is less than 5 changes its labeltext$args[0]->getLabels()->labelText = $args[2].'-u';} }} }$handlers = new EventHandlerCollection();$handlers->add(new EventHandler(new ChartEvent('OnLoad'),'handleLoad'));$handlers->add(new EventHandler(new ChartEvent('OnUnload'),'handleUnload'));$handlers->add(new EventHandler(new ChartEvent('OnGetAxisLabel'),'handleGetAxisLabel'));$chart = new TChart(500,300, $handlers);$chart->getAspect()->setView3D(false);$points = new Points($chart->getChart());$chart->addSeries($points);$points->fillSampleValues();$points->getPointer()->setHorizSize(10);$points->getPointer()->setVertSize(5);$points->setColorEach(true);//$chart->getLegend()->getSymbol()->setWidth(10);$chart->getLegend()->getSymbol()->setSquared(false);$chart->render('chart.png');$rand=rand(); print '<font face="Verdana" size="2">This Demo shows how to use the OnLoad, OnUnload and OnGetAxisLabel Events<p>';print '<img src="chart.pngand='.$rand.'">'; gt;

    到这里TeeChart for PHP教程(六)就介绍完成了,在文中我也有提到,下一节我们将会介绍TeeChart for PHP教程(七):函数的使用。如果您有任何的建议或者疑惑都可以在评论区留言哦!


  TeeChart for PHP已加入在线订购,现在抢购即可享受优惠!

    关注慧聚IT微信公众号了解产品的最新动态及最新资讯。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月1日
下一篇 2019年7月1日

相关推荐

发表回复

登录后才能评论