【问题标题】:JPGraph bottom margin with Legend on/off图例开/关的 JPGraph 下边距
【发布时间】:2011-10-13 03:33:19
【问题描述】:

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

有没有办法关闭这种行为?因为我生成缩略图大小的图表(例如 180x100),所以底部边距白色区域非常“大”。

为了更好地理解:

左:添加图例之前的起点

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

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

left_good right_bad

【问题讨论】:

    标签: php margin legend jpgraph


    【解决方案1】:

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

    $graph->graph_theme=null;

    就在:

    $graph->Stroke();

    祝你好运!

    【讨论】:

      【解决方案2】:

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

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

      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 包中包含的大量文档,这些类都有很好的文档记录,并且提供了很多如何使用它的示例。

      【讨论】:

        【解决方案3】:

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

        祝你好运, C

        【讨论】:

        • @Chris 这里也一样。下边距对图表没有影响。如果在图表中添加了图例,则必须重新计算一些坐标,然后底部边距无法按预期工作。我将查看源代码中发生了什么,但不知道要搜索什么。我查看 jpgraph_legend.inc.php,似乎没有任何东西可以以任何方式改变图形边距:(
        【解决方案4】:

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

        private $ybottom_margin = 8;
        

        这个值不能通过方法改变,它是一个硬编码的边距,你只能在那里改变。

        但是你可以在图例类中添加一个新方法:

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

        调用它像 $graph->legend->SetYBottomMargin(0); 将底部边距设置为 0。

        【讨论】:

        • 我不知道如何真正解决这个问题,但是强烈建议不要更改 3rd 方库的代码,因为这会导致升级非常困难,除非您对已更改的每一行都进行了非常好的记录.
        猜你喜欢
        • 2012-05-31
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 2012-06-23
        • 2016-07-13
        • 1970-01-01
        • 2013-03-25
        相关资源
        最近更新 更多