【问题标题】:Change pen thickness in teechart for php在 teechart for php 中更改笔粗细
【发布时间】:2013-06-28 12:28:49
【问题描述】:

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

另外,如果使用条形图,人们会认为下面的代码 sn-p 应该禁用每个条形上的注释标记:

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

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

【问题讨论】:

    标签: php html builder teechart


    【解决方案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);
    }
    

    另外,如果使用条形图,你会想到下面的代码 sn-p 应该禁用每个条上的注释标记:

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

    Tt 没有。 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();
    }
    

    另外,如果使用条形图,你会想到下面的代码 sn-p 应该禁用每个条上的注释标记:

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

    Tt 没有。 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();
    }
    

    【讨论】:

    • 谢谢你。然而,Embarcadero 的 RAD Studio XE3 for HTML5 构建器附带的 TeeChart 似乎有些受限。当我使用 $line1->getLinePen()->setWidth(2); 运行代码时
    • 再次:Tks Yeray。然而,Embarcadero 的 RAD Studio XE3 for HTML5 构建器附带的 TeeChart 似乎有些受限。当我使用 $line1->getLinePen()->setWidth(2); 运行代码时我收到以下错误:致命错误:在第 97 行的 C:\Users\Magnus B\Documents\HTML5 Builder\Projects\LS_user\MainUnit.php 中的非对象上调用成员函数 getMarks()。如果发生相同的错误我用 getMarks 禁用标记
    • 我以为您使用的是 TeeChart for PHP 而不是 TeeChart HTML5。我已经用第二部分编辑了答案。希望对您有所帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2023-03-14
    • 1970-01-01
    • 2018-05-07
    • 2017-04-17
    • 2021-08-15
    • 2014-06-19
    相关资源
    最近更新 更多