翻譯|使用教程|編輯:況魚杰|2019-08-01 09:50:40.900|閱讀 421 次
概述:本教程將會(huì)介紹系列的架構(gòu)和編程。主要的內(nèi)容分為系列類型,在圖表上可混合系列類型,系列價(jià)值表和系列事件,而本節(jié)主要介紹的是在圖表上可混合系列類型,系列價(jià)值表和系列事件。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
TeeChart for PHP包含100%的PHP源代碼。它支持PHP5及更高的版本。它可作為一個(gè)調(diào)色板組件整合到針對(duì)PHP的Delphi編程環(huán)境中,從而讓其他人在運(yùn)行時(shí)以創(chuàng)建組件的方式來引用。第一個(gè)版本提供17種圖表類型(2D和3D的多種組合),11個(gè)數(shù)學(xué)函數(shù)和一些圖表工具組件以擴(kuò)展功能。
本教程是TeeChart for PHP教程中與系列一起工作這一節(jié)。本章節(jié)的內(nèi)容主要分為以下幾個(gè)部分:
系列類型
在圖表上可混合系列類型
系列價(jià)值表
系列事件
上一節(jié)我們介紹到了與系列一起工作(上)的系列類型,這一章節(jié)我們會(huì)接著介紹這一部分內(nèi)容的下篇,內(nèi)容包括在圖表上可混合系列類型,系列價(jià)值表和系列事件。
在圖表上可混合系列類型
TeeChart Pro提供了一個(gè)空的Chart Canvas作為數(shù)據(jù)系列的背景,這意味著沒有預(yù)定義圖表類型,但是您可以將所需的圖表類型定義為要顯示的系列類型的混合。由于某些系列類型的特殊性質(zhì),在圖表上混合使用一些系列類型是不切實(shí)際的。當(dāng)您到達(dá)添加新系列這一步驟時(shí),TeeChart會(huì)通過在圖表庫中顯示不適合的系列類型標(biāo)識(shí)來幫助您。您可以在一個(gè)圖表中放置的系列數(shù)量是沒有實(shí)際限制。
添加新系列
使用圖表編輯器(參見教程1)或按代碼添加系列。
$bar1 = new Bar($tChart1->getChart()); $bar1->fillSampleValues(10);
選擇系列的軸
添加到圖表中的系列將自動(dòng)將左軸和下軸作為參考軸。您可以更改參考軸,有4個(gè)軸可用:頂部,左側(cè),底部和右側(cè)。通過代碼,更改軸將如下所示:
$bar1->setHorizontalAxis(HorizontalAxis::$TOP); $bar1->setVerticalAxis(VerticalAxis::$RIGHT);
每個(gè)軸都可以關(guān)聯(lián)1個(gè)以上的系列。TeeChart將決定適合與軸匹配系列的最佳比例,但您可以自己更改軸的Scales(參見軸控制的Scales部分)。可以添加附加軸,它們將復(fù)制與前4個(gè)軸相對(duì)應(yīng)的刻度(參見軸控制的附加軸部分)。
連接系列
您能夠把一個(gè)系列當(dāng)做另一個(gè)系列的數(shù)據(jù)源,通過以下代碼完成:
$bar1 = new Bar($tChart1->getChart()); $bar1->fillSampleValues(); $line1 = new Line($tChart1->getChart()); $average1 = new Average(); $line1->setFunction($average1); $line1->setDataSource($bar1); $line1->checkDataSource();
關(guān)于如何去使用Teechart函數(shù)的更多信息可以參加我們的下一章節(jié)內(nèi)容—TeeChart for PHP教程(七):函數(shù)的使用。
更改系列訂單
更改系列訂單非常簡單。系列訂單將決定系列在圖表中相對(duì)于其他系列的相對(duì)顯示位置。使用SeriesList屬性或ExchangeSeries方法能夠達(dá)到這個(gè)效果。
$tChart1->exchangeSeries(0,1); //Change Series(0) with Series(1) in the index order
注意:交換Series后,系列的索引將被更改,因此,如果代碼重新運(yùn)行,上面的代碼行將永久地交換2系列的0和1,0變?yōu)?,1變?yōu)?。
將系列設(shè)置為活動(dòng)=假,系列將會(huì)從圖表中隱藏,但保持其數(shù)據(jù)內(nèi)容不變。
系列價(jià)值表
TeeChart系列通過TChartValueList組件將其值存儲(chǔ)在可訪問和可修改的Valuelist中。
使用值的示例
此代碼需要用戶的鼠標(biāo)單擊修改BarSeries Bar的值。
upDatePoint($valueIndex,$tChart1->getAxes()->getLeft()->calcPosPoint($e->Y));
調(diào)用UpdatePoint Sub例程來修改Bar的值:
private function upDatePoint($bar, $Y)
{
if($bar < $tChart1->getSeries(0)->getCount())
{
$tChart1->getSeries(0)->getYValues()->setValue($bar,Y);
}
}系列事件
OnGetAxisLabel
在我們想要更改或向一些或者所有軸標(biāo)簽添加額外文本的情況下,必須使用OnGetAxisLabel事件,它允許獲取將要顯示的LabelText并在需要時(shí)修改它。
在這里我們可以看到一個(gè)使用示例:
<?php
//Includes
include "../../../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)
{
?><br><br><?php
print 'object '.get_class($sender).' unloaded with '.count($args).' args!<br />';
?></br><?php
}
// Args contains axis, index order to be displayed, labelText
function 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 character
if ((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.png?rand='.$rand.'">';
?>到這里TeeChart for PHP教程(六)就介紹完成了,在文中我也有提到,下一節(jié)我們將會(huì)介紹TeeChart for PHP教程(七):函數(shù)的使用。如果您有任何的建議或者疑惑都可以在評(píng)論區(qū)留言哦!
TeeChart for PHP已加入在線訂購,現(xiàn)在搶購即可享受優(yōu)惠!
關(guān)注慧聚IT微信公眾號(hào)???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: