为管道gnuplot脚本使用不同类型的变量

时间:2013-07-27 10:15:22

标签: perl variables gnuplot heredoc

我正在尝试在perl中管理一个gnuplot脚本来获取一些图。我的data.dat看起来像是:

1       5       2
2       3       9
3       9       6
4       -4      8
5       -3      4
6       11      2
7       0       -3
8       -8      -2
9       1       0
10      22      0

我试过这个剧本:

#!/usr/bin/perl -w    
use strict;

my $type="png";

open(my $GP,'| gnuplot');

print {$GP} << "__GNUPLOT__";

set style data lines
#set logscale y
set terminal $type
set output 'pic.$type'
plot "data.dat" u 1:2, "" u 1:3

__GNUPLOT__

close $GP;

我的目标是绘制对数刻度。由于负面数据,我想使用plot "data.dat" u 1:(abs($2)), "" u 1:(abs($3))。所以我希望能够访问我的perl脚本变量和gnuplot变量$2 $3。没有引用heredoc __GNUPLOT__并不适用于此。我找到了那些处理类似主题的帖子:

我不知道这个问题对于bash是否相同。我还没有尝试过,但也会感兴趣。我只是想了解更多关于管道,报价和不同类型变量的一般问题。

1 个答案:

答案 0 :(得分:2)

表达式$2只是column(2)的简写。因此,如果您遇到转义问题,请使用

plot "data.dat" u 1:(abs(column(2))), "" u 1:(abs(column(3)))