我正在使用JpGraph版本3.5.0b1为PDF文档创建一些图表,我遇到了一个问题,这个问题花费了我一半的时间来尝试找出问题所在。
我想做的就是改变线条图的线条粗细,但无论我尝试什么,它总是默认为1(假设默认为1)。
我完成了我的研究并知道在将其添加到图表后我必须设置它,并且如果antialias设置为true,则忽略SetWeight。我的代码遵循这些规则,但仍然没有。我能够改变线的颜色,所以我知道它与我如何调用方法无关。
有人可以帮我吗?我会非常感激,因为它开始让我感到烦恼。
无论如何,这是我的代码的一小部分:
$lineplot = new LinePlot($ydata, $xdata);
$graph->Add($lineplot);
$lineplot->SetColor("red");
$lineplot->SetWeight(2);
答案 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版本。