Gnuplot用于循环输出

时间:2017-05-22 13:28:50

标签: gnuplot

我有两个不同的文本文件,每个文件都有一个数据列和一个值列。 Ĩ想要使用'plot for'循环绘制两者,但我想改变输出的名称以匹配我正在绘制的文件。现在我的代码看起来像这样:

set terminal postscript eps color
set out "test.eps"
set size 0.6
set multiplot
set xdata time
set timefmt "%Y-%m"
set format x "%b\n%y"
set xtics "2004-01", 12*2629746, "2016-12"
filenames = 'ArcheryData.txt CanyoningData.txt'
plot for [file in filenames] file u 1:2 w l title file

我现在得到的是test.eps文件,该文件在同一图表中绘制了两个数据文件。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以将do循环用作:

set terminal postscript eps color
set size 0.6

set xdata time
set timefmt "%Y-%m"
set format x "%b\n%y"
set xtics "2004-01", 12*2629746, "2016-12"

do for [ name in "ArcheryData CanyoningData" ]{
    set output name.".eps"
    plot name.".txt" u 1:2 w l title name
}

或者,可以在调用Gnuplot时指定变量name,因此脚本为:

set terminal postscript eps color
set size 0.6

set xdata time
set timefmt "%Y-%m"
set format x "%b\n%y"
set xtics "2004-01", 12*2629746, "2016-12"

set output name.".eps"
plot name.".txt" u 1:2 w l title name

然后可以将其用作gnuplot -e "name='ArcheryData';" fig.gpl