使用PDL::Graphics::Gnuplot绘制数据时,我遇到了一个奇怪的现象。似乎只有使用
考虑以下示例(15行,每行101个点):
使用此示例,仅绘制了11条线而不是15条线。
减少点的数量(从101个到51个),绘制了14条线。
最后,仅使用21个点,所有15条线都会显示出来。
首先,我以为只有有限数量的线条被绘制,但这不是真的,因为所绘制的线条数量取决于piddles的大小。
这是perl模块还是Gnuplot的限制?是否有办法增加最大点数?这似乎是Gnuplots qt版本的问题。使用“x11”作为终端不会显示此限制(我测试了100条线,每条线有101个点,没有任何问题)。
此外,我测试了相同的示例,但没有使用“replot”,而是在单个“plot”中。
使用此代码,一切都正常工作(即使将行数增加到显著更大的值)。 最终看起来似乎是“qt”终端的“replot”功能出现了问题。
(GNU PLOT版本4.6修补程序6)
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](https://istack.dev59.com/Q4xew.webp)
![using 51 points](https://istack.dev59.com/TRLH3.webp)
这是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);
使用此代码,一切都正常工作(即使将行数增加到显著更大的值)。 最终看起来似乎是“qt”终端的“replot”功能出现了问题。
(GNU PLOT版本4.6修补程序6)