我将 Gnuplot 与脚本和数据文件一起使用。
在我的脚本中有一个命令;
设置标题“废话标题在这里”
是否可以从数据文件中获取该字符串?例如,这样我就可以使用包含许多数据文件的单个脚本,因为数据文件将包含绘图的标题。
我将 Gnuplot 与脚本和数据文件一起使用。
在我的脚本中有一个命令;
设置标题“废话标题在这里”
是否可以从数据文件中获取该字符串?例如,这样我就可以使用包含许多数据文件的单个脚本,因为数据文件将包含绘图的标题。
我不确定这在纯 gnuplot 中是否容易做到,但这里有一个使用包装 bash 脚本的解决方案。plotscript.sh data.dat
您可以通过在命令行调用来使用该脚本。
#!/bin/bash
my_title=$(head -n 1 $1 | sed 's/^# \(.*\)/\1/')
echo "set terminal postscript enhanced color
set output 'plot.eps'
set title '$my_title'
plot '$1' u 1:2" | gnuplot
要使脚本可用,请将代码放入文本文件并chmod +x
在其上运行。如果您告诉我标题的格式,我可以尝试定制脚本以匹配它。此脚本假定标题是这种格式的数据文件的第一行:
# mytitle
1 4
2 5
3 2
您可以使用反向替换...例如
set title "`head -1 datafile.dat`"
但是,这并不能完全得到您想要的,因为反向替换是在字符串操作之前完成的(您不能将数据文件名指定为字符串)。但是,宏在反向替换之前被扩展。
我的测试数据文件看起来像:
"this is the title"
10 20
20 30
30 40
我的测试脚本看起来像:
DATAFILE="datafile.dat"
set macro
TI='`head -1 '.DATAFILE.'`' #macro: Single quotes are important here to prevent expansion of backtics.
set title @TI
plot DATAFILE u 1:2 title columnhead(1)
请注意,如果您的标题在数据文件中没有用双引号括起来,则需要添加它们以使生成的set title
命令有效。(您可以将它们添加到宏或数据文件中)