我正在编写一个批处理文件,它也会从dat文件中生成一个gnuplot图。
我希望使用我编写的gnuplot“gnu”脚本从命令行调用gnuplot,并将输出图保存到图像中。
类似的东西:
gnuplot.exe script.gnu > image.png
有什么想法吗?
答案 0 :(得分:10)
您不必将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
答案 1 :(得分:7)
简单地添加以下行将使gnuplot返回png格式的字节码。因此,您可以将输出重定向到png文件。
set terminal png
答案 2 :(得分:2)
当您的批处理文件仅运行gnuplot(使用脚本)并且不执行任何其他操作时, 然后你可以将批处理文件与gnuplot脚本结合起来:
@echo off & call gnuplot -e "echo='#';set macros" "%~f0" & goto :eof
set terminal png
set output 'image.png'
...
使用 .cmd 扩展名保存。
这样做的好处是:
换句话说,这是Unix的#!/usr/bin/env gnuplot
解决方案的Windows“等效”(?)
(这就是我在Windows下使用gnuplot脚本时觉得很舒服的原因。)
(注意:'call gnuplot'用于允许在PATH中的某个位置使用gnuplot.cmd文件 - 而不是使用gnuplot.exe(以及许多其他程序)的文件夹污染PATH。)
答案 3 :(得分:1)
之前的解决方案无效,您需要实施:
首先:像这样创建script.sh:
gnuplot<< EOF
设置终端postscript eps颜色增强
设置输出" $ 1.eps" #所需的所有声明
设置xlabel"能量[MeV]"
情节" $ 1.dat"使用1:2 notitle w l
EOF
第二:执行脚本:
$ ./script.sh数据
*参数数据是您将用于图形的.dat文件...
真的有效!