彩票走势图

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

翻译|使用教程|编辑:况鱼杰|2019-07-31 11:17:13.047|阅读 386 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

点击下载TeeChart for PHP试用版


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

  1. 系列类型

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

  3. 系列价值表

  4. 系列事件


系列类型

    Series组件是所有Series类型的先驱者。

系列类结构

    作为TeeChart类型库结构的一小部分背景,下面是对系列类和接口的解释。下图显示了TeeChart系列类之间的关系。所有类都派生自通用的Series类,因此共享Series方法。几个抽象类派生自Series(Custom3DSeries,CustomBarSeries和CircledSeries),这些类以灰色突出显示,并且它们的接口不能直接用于编程,它们的特性由其后代Series类型继承。所有派生系列(橙色)均可在TeeChart图库中访问,以包含在您的图表中。以这种方式派生的TeeChart系列允许通过公共索引结构对继承方法进行可编程访问。

TeeChart for PHP的内部Series Class层次结构

    您可以在同一个图表中创建和添加新的和不同的系列类型。

//Add a series at runtime 
$area1 = new Area($tChart1->getChart());
$area1->fillSampleValues(4);
      
//Or 
$area1 = new Area(); $tChart1->addSeries($area1); $area1->fillSampleValues(4);

    在同一图表中混合不同系列类的一个示例是在设计时将区域(系列(0)),条形(系列(1))和线(系列(2))系列添加到图表中。

    所有系列访问一个公共索引结构 - 图表的系列列表。使用该系列可能如下所示:

getAspect()->setView3D(false);
//$tChart1->getPanel()->getGradient()->setVisible(false);
$tChart1->getPanel()->getGradient()->setEndColor(Color::GRAY());

//You could add the Series at runtime 
$area1 = new Area($tChart1->getChart()); 
$bar1 = new Bar($tChart1->getChart()); 
$line1 = new Line($tChart1->getChart()); 
$line2 = new Line($tChart1->getChart()); 
 
//Use Series common properties 
$tChart1->getSeries(0)->fillSampleValues(10); 
$tChart1->getSeries(1)->fillSampleValues(10); 
$tChart1->getSeries(2)->fillSampleValues(10); 
$tChart1->getSeries(3)->fillSampleValues(10); 

$area1->setColor(new Color(230,250,105));
$area1->getLinePen()->setVisible(false);

$bar1->setColor(new Color(100,155,255));
$bar1->getMarks()->setColor(Color::WHITE());
$bar1->getMarks()->getPen()->setVisible(false);
$bar1->getMarks()->getArrow()->setVisible(false);
$bar1->getPen()->setVisible(false);

$line1->setColor(Color::RED());
$line2->setColor(Color::FUCHSIA());

$bar1->setBarStyle(BarStyle::$PYRAMID);
//Modify Line specific properties 
$line1->setStairs(true); //Set line to Stairs 
$line1->getLinePen()->setColor(Color::BLUE()); //LineSeries bounding lines colour 

$tChart1->render("chart1.png");
$rand=rand();
print ''; 
?>

选择系列类型

    为图表选择系列类型很大程度上取决于您对图表的要求。但是,有时候Chart的选择取决于哪种Series类型支持输入变量的数量,因为要绘制的变量数量很多。下表显示了Series类型示例允许的变量数。

系列类型数量的变量
数据源属性



Basic

Line2XValues, YValues, XLabel
Fast Line2XValues, YValues, XLabel
Bar2XValues, YValues (called Bar), XLabel
HorizBar2XValues, YValues (called Bar), XLabel
Area2XValues, YValues, XLabel
Point2XValues, YValues, XLabel
Pie1PieValues, XLabel
Arrow4StartXValues, StartYValues, XLabel, EndXValues, EndYValues
Bubble3Xvalues, YValues, XLabel, RadiusValues
Gantt3StartValues, EndValues, AY (Y axis level), AXLabel (Label optionally shown on Y-axis or as mark)
ShapeSeries4X0 (Top), Y0 (Bottom), X1 (Left), Y1 (Right)
Extended

Bezier2XValues, YValues, XLabel
Candle5OpenValues, CloseValues, HighValues, LowValues, DateValues
Point3D3XValues, YValues, XLabel, ZValues
Volume2XValues, YValues (VolumeValues), XLabel

    标签可用于扩展2变量Series Type的值。请参阅下面的示例,该示例是在同一图表中使用3个Bar Series类型的实例。

产品代码月份产量
101月300
102月325
103月287
121月175
122月223
123月241
141月461
142月470
143月455

    在最简单的形式中,数据生成以下图表:

       按月分组按产品分组

我们在上表(Stock)中添加了新值。

产品代码月份产量Stock
101月300600
102月325715
103月287676
121月175245
122月223270
123月241
315
141月461800
142月470755
143月455835

    库存的价值通常高于月产量,因此显示它们会给出下面的图表(这次是2D)。图表使用线系列来区分股票。


series3.gif

将数据添加到系列

    大多数系列类型(函数教程7除外)都使用Add和ADDXY方法添加数据。有一些例外,请参见下表:

系列类型添加系列点删除系列点



Standard Series types

Line

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Horiz Line

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Fast Line

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Bar

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

HorizBar

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Area

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Point

Series.Add

Series.AddXY

Series.AddNull

Series.AddNullXY

Series.AddArray

Series.AddText

Series.AddXYColor

Series.AddXYText

Series.AddXYTextColor

Series.AddYColor

Series.AddYText

Series.AddYTextColor

Series.Delete

Series.Clear

Pie

Series.Add

Series.AddNull

Series.Delete

Series.Clear

Arrow

ArrowSeries.AddArrow

Series.AddNull

Series.AddNullXY

Series.Delete

Series.Clear

Bubble

BubbleSeries.AddBubble

Series.AddNull

Series.AddNullXY

Series.Delete

Series.Clear

GanttGanttSeries.AddGantt

Series.Delete

Series.Clear

Shape

ShapeSeries.X0,

ShapeSeries.Y0,

ShapeSeries.X1,

ShapeSeries.Y1

TChart.RemoveSeries

(每个Shape都是独一无二的系列)

颜色

    添加点时,可以手动为点添加颜色。

$tChart1->addSeries(new Bar());
$tChart1->getSeries(0)->addYTextColor(50,"oranges", Color::ORANGE());

    或者,您可以允许TeeChart分配颜色。如果ColorEach设置为true,TeeChart将为每个新系列选择19种尚未使用的颜色之一,或者为每个新系列点选择一种颜色。

$tChart1->getSeries(0)->setColorEach(true);
for($i = 0; $i < 19; ++$i) {
    $higher = $i + 65;
    $tChart1->getSeries(0)->add(rand(0,100));
}

从系列中删除数据点

    使用Series.Delete从Series中删除一个点。

$tChart1->getSeries(0)->delete(7);
 //(8th point - Points index start at zero)

    Series-> Clear清除系列中的所有点。

将Null点添加到系列

    顾名思义,AddNull将为系列添加一个Null点,允许您为该点定义一个标签,但在该点处系列将会中断。在线系列的情况下,休息前的最后一个点不会在休息后加入到第一个点。

$line = new Line($tChart1->getChart());
$line->addNull();

    与系列一起工作(上)的教程就到这里了,下一节我们将会介绍与系列一起工作(下),主要内容是在图表上可混合系列类型,系列价值表和系列事件,如果您对本文章有什么疑惑或者建议都可以在评论区留言,我们会及时处理。


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

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

dd2629f30d553d56ccaf7164fdcb784e-sz_28327.webp.jpg



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP