我正在尝试拟合线性曲线,然后使用拟合线绘制图形。但是,以下方法不起作用,因为gnuplot产生0 kbyte .png输出。
set t push
set term png
fit f(x) "NET_OUTPUT.dat" u 1:2 via a,b
plot "NET_OUTPUT.dat" using 1:2 with points, f(x)
unset output
set term pop
如果不包括拟合线,我可以毫无问题地绘图。 我怀疑问题是fit.log文件被写入,而gnuplot没有完成输出文件的写入。
有人知道这是什么问题吗? 非常感谢!
答案 0 :(得分:0)
对于gnuplot,当绘制到png时,我通常会创建一个类似的脚本:
#!/usr/bin/gnuplot
set term png
set output "out.png"
f(x) = a*x + b
fit f(x) "data.dat" u 1:2 via a,b
plot "data.dat" u 1:2, f(x)
并使用./plot.gnu
调用它,或者我创建一个类似的脚本:
#!/usr/bin/gnuplot
set term png
f(x) = a*x + b
fit f(x) "data.dat" u 1:2 via a,b
plot "data.dat" u 1:2, f(x)
并使用./plot.gnu > out.png
调用它。
第一种方法要求gnuplot将png写入指定的输出文件。第二个请求gnuplot生成png但不设置位置(因此它被转储到标准输出),在这种情况下,我将标准输出(使用>
的bash)重定向到我的png文件。
您还可以在命令行中将脚本传递到带有gnuplot plot.gnu
或gnuplot plot.gnu > out.png
的gnuplot,在这种情况下,以#
开头的行将被忽略为注释。