使用 replot 的 PDL Gnuplot 和 QT 终端的点限制

问题描述 投票:0回答:1

在使用 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 条。

减少点数(从 101 到 51),绘制 14 条线。

最后仅使用 21 个点,显示所有 15 条线。

首先,我认为只绘制了有限数量的线条,但事实并非如此,因为绘制的线条数量取决于 piddles 的大小。

这是 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'
功能的问题。

(GNU PLO T 版本 4.6 补丁级别 6)

perl gnuplot pdl
1个回答
1
投票

我已经在 PDL::Graphics::Gnuplot 上打开了 一个问题 - 希望 Gnuplot 现在是 5.4,这不会成为问题!

几年后

编辑:使用 Gnuplot 5.4.2 和

qt
,它显示了 15 行。看起来这个问题已经解决了,看起来确实是一个 Gnuplot 问题。

© www.soinside.com 2019 - 2024. All rights reserved.