.dat我在与需要绘制的文件相同的文件夹中生成一个 Gnuplot 脚本,即使从不同的目录调用它,我也希望它能够工作。不幸的是,相对路径似乎是在调用 Gnuplot 的目录中工作的,而不是在脚本文件所在的目录中工作的。例如:
gnuplot folder/script.gp
Run Code Online (Sandbox Code Playgroud)
如果文件是folder/data.dat并且脚本说将会失败plot "data.dat"。有什么办法可以解决这个问题吗?就像 Gnuplot 中保存当前执行脚本的位置的变量一样?
目录和文件名之间的分隔符是/,所以我假设您使用的是 Linux。这里有以下作品:
ARG0包含命令行上指定的完整脚本名称。system调用,我们可以将此脚本名称发送回 shell,该 shell 有一个dirname用于提取脚本名称的目录部分的命令。.连接两个字符串的函数。你说你有一个 gnuplot 脚本folder/script.gp和一个数据文件folder/data.txt,那么该脚本应该包含类似的内容:
print ARG0 # just for debugging
working_directory = system("dirname ".ARG0)."/"
datafile = working_directory."data.dat"
outputfile = working_directory."graph.png"
print datafile # just for debugging
print outputfile # just for debugging
set terminal pngcairo
set output outputfile
plot datafile w l
Run Code Online (Sandbox Code Playgroud)
如果您位于“文件夹”内,它也可以工作,然后dirname返回.并且生成的数据文件将为./data.dat. 我没有检查包含空格的“特殊”目录名称,...我不希望它起作用。
在 Debian 9.6 上使用 gnuplot 5.0.5 进行测试,gnuplot 使用 sh shell 进行system. 我还没有搜索过 Windows 解决方案。
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |