我可以只使用gnuplot标题中数据文件中的某些数字吗?

我可以只使用gnuplot标题中数据文件中的某些数字吗?,gnuplot,Gnuplot,我有一个包含许多列数据的数据文件,前两行如下所示: #time a1 b1 c1 d1 a2 b2 c2 d2 1 2 3 4 5 6 7 8 9 a1=2, a2=6, b1=3, b2=7, c1=4, c2=8, d1=5, d2=9 我想在图表上加一个标题如下: #time a1 b1 c1 d1 a2 b2 c2 d2 1 2 3 4 5 6 7 8 9 a1=2, a2=6, b1=3, b2=7, c1=4, c2=8, d1=5, d2=9 因此,基本上只需从第一行获

我有一个包含许多列数据的数据文件,前两行如下所示:

#time a1 b1 c1 d1 a2 b2 c2 d2 
1 2 3 4 5 6 7 8 9
a1=2, a2=6, b1=3, b2=7, c1=4, c2=8, d1=5, d2=9
我想在图表上加一个标题如下:

#time a1 b1 c1 d1 a2 b2 c2 d2 
1 2 3 4 5 6 7 8 9
a1=2, a2=6, b1=3, b2=7, c1=4, c2=8, d1=5, d2=9
因此,基本上只需从第一行获取数据并添加一些文本即可。这可能吗

谢谢米吉尔森!以下是脚本(第一部分)

您可能只需要使用gnuplot就可以做到这一点(我认为),但这会很痛苦。最简单的解决方案是编写一个外部脚本,该脚本将为您格式化标题,例如,使用python(未测试):

然后在gnuplot中:

set title "`python formatTitle.py datafile.dat`"    
编辑

上面的脚本有一些问题。首先,
/
在gnuplot中不是注释字符——因此这将立即引发某种语法错误。接下来,您将使用
filename
作为字符串变量(这是可以的),但您没有在任何地方定义它。(脚本的第一行可能会工作,除非它已被注释掉)。最后,我无法检查,因为我没有您的数据文件,但是您对
lmargin
etc+
set size
++
set origin
的使用(对我来说)有点难以跟踪。更聪明的人可能不会有问题。但是,当我想显式对齐绘图时,我会使用第二种形式的
边距

#make plots go from 0.1 to 0.9 on the screen (screen range is 0-1)
# (0,0) is the lower left corner, (1,1) is the upper right.
set lmargin at screen 0.1
set rmargin at screen 0.9 
然后,对于每个子图,您可以执行以下操作:

NPLOTS=3
SCREENSIZE=0.8  #leave .1 for the top and bottom border
DY=SCREENSIZE/NPLOTS #height of each plot

#bottom
set tmargin at screen 0.9-2*DY
set bmargin at screen 0.9-3*DY
#other commands
plot ... 

#middle
set tmargin at screen 0.9-DY
set bmargin at screen 0.9-2*DY
#other commands ...
plot ...

#top
set tmargin at screen 0.9
set bmargin at screen 0.9-DY
#other commands ...
plot ...

当然,您可以根据自己的需要调整位置。

您有哪个版本的gnuplot?它是4.4版。我正在运行Mac OS XDo,你能控制数据文件格式吗?从技术上讲,我能控制,但如果可能的话,我宁愿不改变数据文件。不过我想我可以单独做一个。我想说清楚,你想要的标题是那些数字,而不是钥匙。非常感谢你的快速回复!这样编写脚本是有意义的。为了清楚起见,它需要位于.gnu文件中的什么位置?我可能应该说我“我用脚本来绘图。我想我的困惑是由于脚本引起的,因为我没有写它,而且是gnuplot的新手。我真的希望信息只显示在左下角或左上角。我之所以说标题,是因为我最终成功地创建了一个标题,尽管它位于一个陌生的位置。以前我甚至无法成功创建标签。我已经在谷歌上搜索了好几个小时了。我认为应该正常工作的一般事情是不正常的,因为这个脚本有点专业化。有什么办法我可以把它附加上去吗?@whatsherface:你能把剧本按原样贴上去吗?我可以看一看,也许可以推断出你想要什么。。。实际上,在发出
plot
splot
命令之前,您需要放置
set title
。我很想附加它。我觉得问这个问题很愚蠢,可能很简单,但我该怎么做呢?首先,我只有500个字符,大约是这个长度的3倍。第二,复制和粘贴时不会保留格式。我做错了什么?@whatsherface——你可以“编辑”你的原始帖子,然后复制/粘贴到那里。除非在每行前面加上4个空格,否则代码的格式将不会保留,因此最容易的方法可能是尝试找出脚本的哪些部分不起作用,对于每个不起作用的部分,发布一个新问题。与所有编程一样,这类事情通常最好分块完成。