在gnuplot绘图文件中使用相对路径

5
在gnuplot指令文件中,是否可以指定数据源文件和输出的相对路径?这些路径必须是相对于gnuplot指令文件路径的。 背景 我有大型数据文件,其中包含12到50个 x-y 曲线,我使用 PHP 脚本和 gnuplot 处理这些文件,以便提供数据的良好图形视图。使用 gnuplot 生成视图,对于每个视图,我有一个 .csv 文件、一个 gnuplot 绘图指令文件和一个图形。
一切都很好地归类到文件夹中。通常,在一个文件夹中,图形位于顶层,然后在 source/subfolder 中是 .csv 和 gnuplot 文件。
有时候,我需要稍微更改一下图形。所以我编辑gnuplot文件,然后通过直接调用gnuplot来绘制它。一切都很好,直到我将文件夹移动到其他地方。我经常这样做。
2个回答

3

是的,您可以在gnuplot文件中指定相对路径:

set output '../path/to/outputs/output.eps'
plot '../path/to/csv/input.csv'

功能正常。如果你想将路径作为脚本参数指定,我建议使用bash包装器:

#!/bin/bash

# argument 1 is path to input
# argument 2 is path to output

gnuplot << EOF
set terminal ...
set output '$2/output'

plot '$1/input1.csv', \
     '$1/input2.csv' ...
EOF

2
谢谢。我尝试了,但好像不起作用。我得到的是:“第69行:警告:跳过无法读取的文件”。我正在使用在MAC OS 10.8.2上通过macports安装的gnuplot 4.6。路径是相对于绘图指令文件还是相对于shell中的当前目录? - Jean
2
测试后发现,它与Shell中当前选定的目录有关。 - Jean
2
好的,你的回复并没有严格回答我的问题。但是,由于我所寻找的答案似乎是“不”,你的建议是正确的。因此,它可能会对其他人有所帮助。 - Jean

2

我发现可以使用loadpath相对于$HOME加载数据:

set loadpath system('readlink -f ~/.gnuplot.scripts')

当然,这是针对Unix系统的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接