Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Can';t在图表中可视化点::Gnuplot图形图例_Perl_Charts_Gnuplot - Fatal编程技术网

Perl Can';t在图表中可视化点::Gnuplot图形图例

Perl Can';t在图表中可视化点::Gnuplot图形图例,perl,charts,gnuplot,Perl,Charts,Gnuplot,我希望有人能帮助我在使用chart::Gnuplot模块和Perl中的“dots”绘制图表时找出错误或可能的地方 以下是我的数据集: # RFE Chart object my $chart_RFE = Chart::Gnuplot->new( output => $out_file_RFE, terminal => "png", title => { text => "Step ROCOF"

我希望有人能帮助我在使用chart::Gnuplot模块和Perl中的“dots”绘制图表时找出错误或可能的地方

以下是我的数据集:

    # 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=>选项,但没有任何效果(因为它是针对线条的,所以我怀疑不会)

有人知道这是否可行吗?

需要更改图例中的点大小(或Gnuplot称之为“键”),因此必须使用黑客来达到预期效果

首先,使用
样式绘制数据集,但不要为其指定标题;然后使用不同的样式绘制虚拟数据集并指定标题:

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的命令行版本的,但实际上很难创建一个虚拟数据集,它不使用
Chart::Gnuplot
绘制任何内容。使用y值
“inf”
是我唯一可以不用知道轴范围的方法。

点确实出现在图例中,它们很小。你可以使用
样式、点类型7和小点大小进行绘图。键中的点不受小点大小的影响。正如您所解释的那样。关于你的填充圆点,我还有一个问题。你在做什么使它成为一个圆圈?我的png以盒子的形式出现,顶部和底部有两条小线。实际上,我似乎无法绘制圆点,只有带线的框。@t由虚拟数据集的参数中的
pointtype=>'fill circle'
控制的白色(
pointtype=>7
应该做同样的事情)。中的任何东西都应该可以工作,尽管我认为您正在使用的特定驱动程序可能不支持所有这些驱动程序。检查中所述的
test
命令的输出,以确保正确。我已经按照您所说的设置了类型。我决不能支持圈子。我能画三角形、正方形、星形等等,但不能画圆。圆圈显示为带直线的正方形。谢谢你的帮助。