0

我正在尝试编写一个 gnuplot 脚本来绘制文件中的数据(那里没有问题),文件名在另一个文件中给出(我需要帮助)。我目前有以下内容:

set terminal pngcairo
set output 'interpolation.png'

plot 'output.txt' u 2:3 w lines, \
     'data_1.txt' w points

按预期工作。但是,我生成了output.txtdata_X.txt(并插入数据)中获取值的数据文件。我的程序从中读取数据文件名stdin,因此我有一个输入文件,其中包含一次运行所需的所有数据。此输入文件的第一行是该运行的数据文件的文件名。

有什么方法可以从同一个输入文件中获取文件名?如何?

换句话说,给定一个绘图脚本interpolation.gpt、多个数据文件data_X.txt和一个输入文件input.txt,其中第一行命名其中一个data_X.txt文件,我可以interpolation.gpt使用名为 in 的数据文件input.txt而无需手动编辑这两个文件吗?

4

2 回答 2

1

您也可以在 gnuplot 中执行此操作:

datafile = system("head -1 output.txt")
plot 'output.txt' u 2:3 w lines, \
      datafile w points

我认为反引号替换也可以:

datafile = "`head -1 output.txt`"
于 2013-04-10T12:00:46.623 回答
0

最简单的方法可能是从另一个脚本调用 gnuplot,例如

#!/bin/bash

datafile=$(head -1 output.txt)

gnuplot << EOF
set terminal ...
set output ...
plot 'output.txt' u 2:3 w lines, \
     '$datafile' w points
EOF
于 2013-04-09T12:09:16.457 回答