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

Jea*_*ean 5 gnuplot relative-path

在gnuplot指令文件中,是否可以指示数据源文件和输出的相对路径?这些路径必须相对于gnuplot指令文件路径。

背景信息 我有很大的数据文件,其中包含12至50个xy曲线,我使用PHP脚本和gnuplot处理这些曲线,以便提供良好的数据图形视图。这些视图是使用gnuplot生成的,对于每个视图,我都有一个.csv文件,一个gnuplot绘图指令文件和一个图形。

一切都很好地分类到文件夹中。通常,在文件夹中,图形位于顶层,然后在源/子文件夹中是.csv和gnuplot文件。

有时,我需要稍微更改图形。因此,我编辑了gnuplot文件,并通过直接调用gnuplot再次对其进行了绘制。一切都很好,直到我将文件夹移动到其他位置。我经常这样做。

and*_*ras 3

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

set output '../path/to/outputs/output.eps'
plot '../path/to/csv/input.csv'
Run Code Online (Sandbox Code Playgroud)

工作正常。如果您想指定路径作为脚本的参数,我推荐使用 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
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我尝试过,但似乎不起作用。我得到:“第 69 行:警告:跳过不可读的文件”。我使用的是 gnuplot 4.6,在 MAC OS 10.8.2 上与 macports 一起安装。路径是相对于绘图指令文件,还是相对于 shell 中的当前目录? (2认同)
  • 经过测试,它似乎与 shell 中当前选定的目录相关。 (2认同)
  • 好吧,你的消息并没有严格回答我的问题。但是,我寻求的答案似乎是:不,你的建议才是正确的选择。所以它可能会帮助其他人。 (2认同)