如何摆脱 Perl GD::Graph 中的饼图轮廓?

Posted

技术标签:

【中文标题】如何摆脱 Perl GD::Graph 中的饼图轮廓?【英文标题】:How do I get rid of the pie chart outline in Perl's GD::Graph? 【发布时间】:2010-05-27 11:45:29 【问题描述】:

我正在尝试使用GD::Graph 创建一个没有轮廓的饼图。令人沮丧的是,我可以用这个来控制轮廓的颜色:

    accentclr => 'black',

所以我希望我可以通过这样做完全摆脱大纲:

    accentclr => undef,

但是,当我这样做时,轮廓确实会消失,但饼图的其余部分也会消失,只剩下标签!

这是我的脚本的简化版本:

#!/usr/bin/env perl
use GD::Graph::pie;

# Data to be graphed: 1st array is labels, 2nd array is data
my @data = ( 
     ["1st","2nd","3rd","4th"],
     [ 1, 3.5, 5, 6 ],
  );
my $graph = GD::Graph::pie->new(400, 400);

$graph->set(      
#   accentclr   => undef,   
    '3d'            => 0,
) or die $graph->error;

my $gd = $graph->plot(\@data) or die $graph->error;

open(IMG, '>pie.png') or die $!;
binmode IMG;
print IMG $gd->png;

【问题讨论】:

为什么不能使用与背景相同的颜色? 【参考方案1】:

您不能将accentclr 设置为undef

来自GD:Graph 文档:

bgclr、fgclr、boxclr、accentclr、shadowclr

用于图表的绘制颜色:背景、前景(轴和网格)、轴框填充颜色、重音(条形、区域和饼形轮廓)和阴影(目前仅用于条形)。

所有颜色都应该有一个有效值,如"COLOURS" 中所述,boxclr 除外,它可以是未定义的 strong>,这种情况下方框不会被填满。

看来您最好的选择是将accentclr 值设置为与boxclr 相同。

【讨论】:

以上是关于如何摆脱 Perl GD::Graph 中的饼图轮廓?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中的饼图旁边制作图例?

如何在chart.js中的饼图上方显示标签

ggsubplot (ggplot2) 中的饼图

GD::Graph 字体和图例

如何使用 JSON 和 ChartJS 制作一个显示某个年龄段人数的饼图?

为啥我在 Tkinter 中的饼图不显示?