我正在编写一个批处理文件,它还将从 dat 文件生成一个 gnuplot 图。
我希望使用我编写的 gnuplot“gnu”脚本从命令行调用 gnuplot,并将输出图保存到图像中。
就像是:
gnuplot.exe script.gnu > image.png
有任何想法吗?
我正在编写一个批处理文件,它还将从 dat 文件生成一个 gnuplot 图。
我希望使用我编写的 gnuplot“gnu”脚本从命令行调用 gnuplot,并将输出图保存到图像中。
就像是:
gnuplot.exe script.gnu > image.png
有任何想法吗?
您不必将 gnuplot 的输出重定向到图像文件中;您可以在 gnuplot 脚本本身中设置它:
set terminal png
set output 'image.png'
如果您想要一个变量输出名称,在 bash 中实现此目的的一种简单方法是这样包装 gnuplot 命令:
#!/bin/bash
echo "set terminal png
set output '$1'
plot 'data.dat'" | gnuplot
这样,您可以使用输出文件名的参数运行 bash 脚本:
./plotscript.sh image.png
只需输入以下行将使 gnuplot 返回 png 格式的字节码。因此,您可以将输出重定向到 png 文件。
set terminal png
当您的批处理文件仅运行 gnuplot(使用脚本)并且不执行任何其他操作时,您可以将批处理文件与 gnuplot 脚本结合使用:
@echo off & call gnuplot -e "echo='#';set macros" "%~f0" & goto :eof
set terminal png
set output 'image.png'
...
使用.cmd扩展名保存它。
这样做的好处是:
换句话说,这是#!/usr/bin/env gnuplot
Unix 解决方案的 Windows“等效”(?)
(这就是为什么我在 Windows 下使用 gnuplot 脚本时觉得它很舒服的原因)。
(注意:'call gnuplot' 用于允许在 PATH 中的某处使用 gnuplot.cmd 文件,而不是使用 gnuplot.exe(和许多其他程序)的文件夹污染 PATH。)
之前的解决方案都行不通,需要实现:
首先:像这样创建script.sh:
#!/bin/sh
gnuplot << EOF
set terminal postscript eps color enhanced
set output "$1.eps" # all the declarations that you need
set xlabel "Energy [MeV]"
plot "$1.dat" using 1:2 notitle w l
EOF
二:执行脚本:
$ ./script.sh data
参数数据是您将用于绘制图形的 .dat 文件...
真的行!