使用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);
}
}
最后只使用了21个点,显示了所有15行。
首先,我认为只绘制了有限数量的线条,但这不是真的,因为绘制线条的数量取决于小花絮的大小。
这是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);
使用此代码,一切正常(即使将行数增加到更大的值)。
最后,它似乎是replot
终端'qt'
功能的问题。
(G N U P L O T Version 4.6 patchlevel 6)