我希望有人可以帮助我弄清楚在使用Chart :: Gnuplot模块和'点'绘制图表时错误或可能出现的问题。在Perl。
以下是我的数据集:
# RFE Chart object
my $chart_RFE = Chart::Gnuplot->new(
output => $out_file_RFE,
terminal => "png",
title => {
text => "Step ROCOF",
font => "arial, 12",
},
xlabel => $chart_xlabel,
ylabel => "ROCOF Error (Hz/s)",
legend => {
position => "outside top",
align => "left",
},
);
# RFE Dataset
$dataSet = Chart::Gnuplot::DataSet->new(
xdata => \@dataX,
ydata => \@dataY,
style => 'dots',
color => $COLORS[3],
title=> 'RFE',
);
我想要点,因为我有很多数据点可以图表。但是,它生成的图形图例在图例名称旁边没有显示任何点。如果我将样式更改为'点'
style => 'points',
不同的点出现在图表的图例中。有没有办法让点显示?我已经放大了传说区域,想知道他们是否只是小而没有出现。我也试过设置width =>选项但是没有做任何事情(因为我怀疑它不会因为线路而没有)。
任何人都知道这是否可能?
答案 0 :(得分:2)
有no option来更改图例中的磅值(或者#34;键,"当Gnuplot调用它时),所以你必须使用hack来达到预期的效果
首先,使用dots
样式绘制数据集,但不要为其指定标题;然后使用不同的样式绘制虚拟数据集并指定标题:
use strict;
use warnings;
use Chart::Gnuplot;
my @x = map { rand } 0 .. 10_000;
my @y = map { $_ + 0.1 - rand 0.2 } @x;
my $chart = Chart::Gnuplot->new(
output => 'gnuplot.png',
legend => {
position => 'outside top',
align => 'left'
}
);
my $color = '#ff0000';
my $dataset = Chart::Gnuplot::DataSet->new(
xdata => \@x,
ydata => \@y,
style => 'dots',
color => $color
);
my $dummy = Chart::Gnuplot::DataSet->new(
ydata => [ 'inf' ],
style => 'points',
pointtype => 'fill-circle',
pointsize => 1,
title => 'foo',
color => $color
);
$chart->plot2d($dataset, $dummy);
请注意,对于Gnuplot的命令行版本,这是asked elsewhere,但实际上很难创建一个不使用Chart::Gnuplot
绘制任何内容的虚拟数据集。使用y值"inf"
是我唯一可以开始工作的东西,并不需要知道轴的范围。