使用replot

时间:2016-03-03 20:24:41

标签: perl gnuplot pdl

使用PDL :: Graphics :: Gnuplot绘制数据时,我遇到了一个奇怪的效果。看来,使用replot一次只能绘制有限数量的点。

考虑以下示例(15行,101分):

use strict;
use warnings;

use PDL;
use PDL::Graphics::Gnuplot qw/gpwin/;

my $win = gpwin('qt', persist => 1);

foreach my $a (1..15) {
    my $x = sequence(101)/100;

    my $y = $a*$x;

    if ($a == 1) {
        $win->plot({ linecolor => 'black' }, $x, $y);
    }
    else {
        $win->replot({ linecolor => 'black' }, $x, $y);
    }
}

使用此示例,仅绘制了11行而不是15。using 101 points

减少点数(从101到51),绘制了14行。 using 51 points

最后只使用了21个点,显示了所有15行。

using 21 points

首先,我认为只绘制了有限数量的线条,但这不是真的,因为绘制线条的数量取决于小花絮的大小。

这是perl模块或Gnuplot的限制吗?有没有办法增加最大点数?这似乎是Gnuplots qt版本的问题。使用'x11'作为终端没有显示此限制(我测试了100行,101点没有任何问题)。

此外,我在不使用replot的情况下测试了相同的示例,但只使用了一个plot

use strict;
use warnings;

use PDL;
use PDL::Graphics::Gnuplot qw/gpwin/;

my $win = gpwin('qt', persist => 1);

my $x = sequence(101)/100;
my $a = sequence(1,15)+1;
my $y = $x*$a;

$win->plot({ linecolor => 'black' }, $x, $y);

使用此代码,一切正常(即使将行数增加到更大的值)。

101 points in a single plot

最后,它似乎是replot终端'qt'功能的问题。

(G N U P L O T Version 4.6 patchlevel 6)

0 个答案:

没有答案