2

我对 JPGraph.net 的 PHP 图形库有疑问。我有一个非常简单的 LinePlot() ,如果我在图表中添加一个图例,图表的底部边距会延伸大约 10 个像素。制作图表图例 Show() 或 Hide() 没有任何区别,在图例与线图关联之后,底部边距将立即添加到图表中。

有什么解决方案可以关闭这种行为吗?因为我生成缩略图大小的图表(例如 180x100),所以底部边距白色区域非常“大”。

为了更好地理解:

左:添加图例之前的起点

右:添加图例后,图表的边距/代码没有其他变化

哎呀,我没有足够的声誉来发布图片:(

左好右

4

4 回答 4

13

这个问题的解决方案是添加:

$graph->graph_theme=null;

就在:

$graph->Stroke();

祝你好运!

于 2012-02-28T12:43:15.070 回答
0

请记住,图例或多或少独立于图形本身,它可以放置在任何地方。

图表本身的边距 - 在大多数情况下 - 可以使用...修改

Graph::SetMargin($left_m, $right_m, $top_m, $bottom_m)

...(以像素为单位的边距)在您的代码中可能如下所示:

$graph = new Graph(180,100);    
$graph->SetMargin(10,20,30,40);

/* followed by alot more code for your graph until... */
$graph->Stroke();

我建议查看 JPGraph 包中包含的大量文档,这些类都有很好的文档记录,并且它们提供了很多如何使用它的示例。

于 2011-07-26T06:31:57.227 回答
0

我同意 Bjorn 的观点 $graph->SetMargin(lMargin,rMargin,tMargin,bMargin); 是要走的路。但是,在我的线图设置下边距似乎没有任何效果。知道有一个页脚,并且像图例一样,填充这个 - 或者不填充 - 也对底部边距没有影响。如果你偶然发现这样的事情,我会非常感激知道你是如何解决它的。

祝你好运,C

于 2011-07-26T10:23:19.900 回答
0

这个边距在 jpgraph_legend.inc.php 的第 35 行设置。

private $ybottom_margin = 8;

此值不能通过方法更改,它是硬编码的边距,您只能在此处更改。

但是您可以向图例类添加一个新方法:

function SetYBottomMargin($aYMarg) {
    $this->ybottom_margin = $aYMarg;
}

将其称为 $graph->legend->SetYBottomMargin(0); 将下边距设置为 0。

于 2011-12-02T13:21:34.597 回答