JpGraph:LinePlot-> SetWeight不起作用

时间:2011-11-28 17:31:33

标签: php jpgraph

我正在使用JpGraph版本3.5.0b1为PDF文档创建一些图表,我遇到了一个问题,这个问题花费了我一半的时间来尝试找出问题所在。

我想做的就是改变线条图的线条粗细,但无论我尝试什么,它总是默认为1(假设默认为1)。

我完成了我的研究并知道在将其添加到图表后我必须设置它,并且如果antialias设置为true,则忽略SetWeight。我的代码遵循这些规则,但仍然没有。我能够改变线的颜色,所以我知道它与我如何调用方法无关。

有人可以帮我吗?我会非常感激,因为它开始让我感到烦恼。

无论如何,这是我的代码的一小部分:

$lineplot = new LinePlot($ydata, $xdata);
$graph->Add($lineplot);
$lineplot->SetColor("red");
$lineplot->SetWeight(2);

4 个答案:

答案 0 :(得分:11)

在关闭消除锯齿之前,SetWeight()将不执行任何操作。 JpGraph在using anti-aliasing页面的手册中提到了这一点。

我在版本3.5.0b1中对此进行了测试,必须完成以下操作:

// Ensure anti-aliasing is off. If it is not, you can SetWeight() all day and nothing will change.
$graph->img->SetAntiAliasing(false); 

// Create linear plot
$lineplot = new LinePlot($ydata, $xdata);

// Add plot to graph
$graph->Add($lineplot);

// Set line weight. This must be done AFTER adding the plot to the graph in version 3.5.0b1. I haven't verified this in other versions.
$lineplot->SetWeight(2); 

答案 1 :(得分:3)

我遇到了同样的事情,据我所知,这似乎是一个3.5的错误。在3.5中分发的示例中甚至忽略了它。

回归到3.0.7适用于我,所以如果你不需要任何3.5特定的功能,请尝试。

答案 2 :(得分:2)

我有类似的问题,通过使用$ p1-> SetStyle('solid')解决后将线图添加到图表中:

    $p1 = new LinePlot($min_values);
    $graph->Add($p1);
    $p1->SetWeight(3); 
    $p1->SetColor("blue");
    $p1->SetLegend("Minimum Values");
    $p1->SetStyle("solid");

这是一个相关的link,验证了Sean建议在调用Add lineplot方法后调用SetWeight和SetColor方法。

答案 3 :(得分:0)

这里的问题是我的注册JpGraph版本3.5.0b1似乎根本没有关于线宽和其他显示开关的工作。

降级到3.1.7p版本后,一切工作正常,不依赖于任何抗锯齿开关或SetWeight之后Add()的定位。

因此,目前我只能建议降级到非3.5.0b1版本。