3

我正在使用 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

4 回答 4

11

SetWeight() 在你关闭抗锯齿之前什么都不做。JpGraph 在其使用抗锯齿页面的手册中提到了这一点。

我在 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); 
于 2012-12-18T16:03:23.507 回答
3

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

回退到 3.0.7 对我有用,所以如果您不需要任何 3.5 特定的功能,请尝试一下。

于 2011-12-18T23:46:29.667 回答
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");

这是一个相关链接,验证了 Sean 的建议,即在调用 Add lineplot 方法之后放置 SetWeight 和 SetColor 方法调用。

于 2012-02-02T22:27:46.943 回答
0

对我来说,这里的问题是我注册的 JpGraph 版本 3.5.0b1 似乎对线宽和其他显示开关都不起作用。

降级到 3.1.7p 版本后,一切正常,不受任何抗锯齿开关或SetWeightafter定位的影响Add()

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

于 2013-04-10T00:49:40.083 回答