我正在使用Gnuplot脚本和数据文件。
在我的脚本中有一个命令;
设置标题“blah title here”
是否可以从数据文件中获取该字符串?例如这样我就可以使用包含许多数据文件的单个脚本,因为数据文件将包含图表的标题。
答案 0 :(得分:5)
我不确定在纯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
答案 1 :(得分: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
命令有效。 (您可以将它们添加到宏或数据文件中)