GD::Graph 字体和图例

Posted

技术标签:

【中文标题】GD::Graph 字体和图例【英文标题】:GD::Graph Fonts and Legends 【发布时间】:2017-12-02 08:28:43 【问题描述】:

我在 perl 脚本中有一个累积 GD 条形图,我似乎无法将标题字体更改为更大和粗体。

另外,更重要的是,如何向图表添加图例?我读到在实际图表中可能没有办法这样做,而是使用 GD::Graph::Map 添加。

你知道如何做这些吗?我找不到适用于其他任何地方的单一答案。

谢谢

my $graph = GD::Graph::bars->new (900,450);
$graph->set(
 x_label         => 'X Label',
 y_label         => 'Y label',
 title           => 'Title',

 t_margin        => 5,
 b_margin        => 2,
 l_margin        => 5,
 r_margin        => 5,

 y_min_value     => 0,
 y_max_value     => 1200,
 y_tick_number   => 8,
 y_label_skip    => 3,
 cumulate        => 1,

 dclrs           => [qw(#4f81bd #70AD47 #5b9bd5 #FFC000 #ED7D31 #AFABAB #9E480E #997300 #264478 #ac63e3 #FF7171 #d571ce)],
 fgclr           => black,
 textclr         => black,
 labelclr        => black,
 axislabelclr    => black,

 x_labels_vertical => 1,
 y_long_ticks      => 1,
 line_width      => 4,
 bar_spacing     => 10,
 transparent     => 0,
) or warn $graph->error;


$tmp_trend_file = 'graph.png';
open(IMG, ">$tmp_trend_file") or die $!;
binmode IMG;
print IMG $graph->plot(\@data)->png();
close IMG;  
print "<p><img src=$tmp_trend_file border=1><p>\n";

【问题讨论】:

GD 确实有一些内置字体,但它也支持 TrueType 字体,效果更好。这个slide set中有一些例子 你知道如何添加它们吗?这是我想不通的。 此外,该链接仅指向一张封面幻灯片。 我猜这不是很明显,下一张幻灯片有链接,或者你可以使用箭头键或 PgDn/PgUp。使用 TrueType 字体需要指定 .ttf 或 .otf 文件的路径名。 【参考方案1】:

您可以使用以下代码添加图例并更改字体:

$graph->set_legend_font(GD::gdFontTiny); $graph->set_legend(split(' ',$legend));

【讨论】:

以上是关于GD::Graph 字体和图例的主要内容,如果未能解决你的问题,请参考以下文章

python使用matplotlib可视化为可视化图像添加图例(legend)自定义图例的字体格式字体大小字体颜色等

R语言画图时 图例字体的大小可以改吗

更改 matplotlib 图例中各个标签的字体大小

R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体文本字体标识模块(key)的大小

如何在 matplotlib 中更改图例字体名称

R语言ggplot2可视化增大图例字体实战