Using relative paths in gnuplot plot files

狂风中的少年 提交于 2019-12-10 05:53:17

问题


In a gnuplot instruction file, is it possible to indicate relative paths for the data source files and for the output? The paths must be relative to the gnuplot instruction file path.

Context I have large data files containing between 12 to 50 x-y curves that I process using PHP scripts and gnuplot in order to provide nice graphic views of the data. The views are generated using gnuplot and for each view, I have one .csv file, one gnuplot plotting instruction file and one graphic.

Everything is nicely sorted into folders. Usually, in a folder, the graphics are at the top level, then in a source/subfolder are the .csv and gnuplot files.

Sometimes, I need to slightly change the graphic. So I edit the gnuplot file, and I plot it again by calling gnuplot directly. Everything is fine, until I move the folders elsewhere. Which I do frequently.


回答1:


Yes, you can specify relative paths in the gnuplot file:

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

works fine. If you want to specify paths as arguments to the script, I recommend a bash wrapper:

#!/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:


I've stumbled onto using loadpath to get data loaded relative to one's $HOME:

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

Of course, this is for un*x systems.



来源:https://stackoverflow.com/questions/14911128/using-relative-paths-in-gnuplot-plot-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!