1

我正在使用 Embarcadero 的 HTML5 构建器 (php) 和 TeeChart 来绘制图形。大多数零件都能很好地工作。然而,至少可以说 php 的 TeeChart 文档非常稀少 - 大量的试验和错误。我找不到为折线图设置笔粗细的方法。谷歌上什么都没有。有谁知道吗?

此外,如果使用条形图,人们会认为以下代码片段应该禁用每个条上的注释标记:

$series1=$this->Chart2->addSeries(new TeeBar($this));
$series1->Marks->Visible = false;

它没有。Marks->Visible不做任何事情。默认标记仍会显示。

4

1 回答 1

1

如果您在 HTML5 Builder XE3中使用TeeChart for PHP :

我找不到为折线图设置笔粗细的方法。谷歌上什么都没有。有谁知道吗?

如果您将安装中包含的功能演示作为参考,您将在其中找到 Line2D 示例。创建图表后:

$chart = new TChart(500,300);

添加并填充 Line 系列:

$line1=new Line($chart->getChart());  
$data = Array(10,50,25,175,125,200,175);
$line1->addArray($data);

$line2=new Line($chart->getChart());  
$line2->addXY(0,10);
$line2->addXY(1,15);
$line2->addXY(2,20);
$line2->addXY(3,25);                                       
$line2->addXY(10,30);

$line3=new Line($chart->getChart());  
$data = Array(200,175,175,100,65,110,90);
$line3->addArray($data);

然后,为了使它们更宽,您可以:

$line1->getLinePen()->setWidth(2);
$line2->getLinePen()->setWidth(2);
$line3->getLinePen()->setWidth(2);

或者您可以使用已经存在的 foreach 循环:

foreach ($chart->getSeries() as $serie) {
  //...

  $serie->getLinePen()->setWidth(2);
}

此外,如果使用条形图,人们会认为以下代码片段应该禁用每个条上的注释标记:

$series1=$this->Chart2->addSeries(new TeeBar($this));
$series1->Marks->Visible = false; 

没有。Marks->Visible 不做任何事情。默认标记仍会显示。

看一下 Bar 系列的例子。它是这样开始的:

$chart1 = new TChart(500,300);

$chart1->getChart()->getHeader()->setText("Bar Style");
$chart1->getChart()->getAspect()->setChart3DPercent(30);

$bar=new Bar($chart1->getChart());
$chart1->getChart()->getSeries(0)->setColorEach(true);
$chart1->getChart()->getSeries(0)->fillSampleValues(10);

您可以在第一个条形图中看到标记。但是在上面添加以下内容似乎隐藏了我预期的标记:

$chart1->getChart()->getSeries(0)->getMarks()->setVisible(false);

也可以这样做:

$bar->getMarks()->setVisible(false);

如果您在 HTML5 Builder XE3中使用TeeChart HTML5/JavaScript :

我找不到为折线图设置笔粗细的方法。谷歌上什么都没有。有谁知道吗?

可以通过format.stroke.size属性来实现,如下:

var Chart1;

function draw() {
  Chart1=new Tee.Chart("canvas1");

  line1=Chart1.addSeries(new Tee.Line());
  line1.addRandom(25);
  line1.format.stroke.size=2;

  line2=Chart1.addSeries(new Tee.Line());
  line2.addRandom(25);

  Chart1.draw();
}

此外,如果使用条形图,人们会认为以下代码片段应该禁用每个条上的注释标记:

$series1=$this->Chart2->addSeries(new TeeBar($this));
$series1->Marks->Visible = false; 

没有。Marks->Visible 不做任何事情。默认标记仍会显示。

这似乎对我来说按预期工作:

var Chart1;

function draw() {
  Chart1=new Tee.Chart("canvas1");

  bar1=Chart1.addSeries(new Tee.Bar());
  bar1.addRandom(6);
  bar1.marks.visible=false;

  bar2=Chart1.addSeries(new Tee.Bar());
  bar2.addRandom(6);

  Chart1.draw();
}
于 2013-06-28T14:06:45.207 回答