Gnuplot 可以将字符串设置为“0”;“设置标题”;从档案中获得?

Gnuplot 可以将字符串设置为“0”;“设置标题”;从档案中获得?,gnuplot,Gnuplot,我将Gnuplot用于脚本和数据文件 在我的脚本中有一个命令 设置标题“此处无标题” 是否可以从数据文件中获取该字符串?e、 例如,我可以使用一个脚本和多个数据文件,因为数据文件将包含绘图的标题。您可以使用backtic替换…例如 set title "`head -1 datafile.dat`" 但是,这并不能完全满足您的需要,因为backtic替换是在字符串操作之前完成的(您不能将数据文件名指定为字符串)。但是,宏是在backtic替换之前展开的 我的测试数据文件如下所示: "this

我将Gnuplot用于脚本和数据文件

在我的脚本中有一个命令

设置标题“此处无标题”


是否可以从数据文件中获取该字符串?e、 例如,我可以使用一个脚本和多个数据文件,因为数据文件将包含绘图的标题。

您可以使用backtic替换…例如

set title "`head -1 datafile.dat`"
但是,这并不能完全满足您的需要,因为backtic替换是在字符串操作之前完成的(您不能将数据文件名指定为字符串)。但是,宏是在backtic替换之前展开的

我的测试数据文件如下所示:

"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)
我的测试脚本如下所示:

"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
命令有效。(您可以将它们添加到宏或数据文件)

我不确定在纯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)在某些方面,我认为这个解决方案比我的更优雅。我唯一的建议是使用here文件而不是
echo
。e、 g.
gnuplot感谢各位的回答;我认为结论是你基本上不能,所以我现在采取的方法是使用在线数据(例如,gnuplot脚本本身中的数据)。让生成数据的工具也生成gnuplot脚本来绘制它是我经常使用的方法。祝你好运