尽管这个问题有很多部分答案,但通过WSL 和 Cygwin在 Windows 上对我有用的唯一方法如下。
作为交互式 CLI 会话:
# Start the Octave CLI session:
octave-cli.exe -iWq
graphics_toolkit ("gnuplot")
x = -2*pi:2*pi;
y = sin(x);
figure(1,'Visible','off');
plot(y)
print (1, "-ddumb", "dummy"); type -q dummy.txt
生成:
1 |-------------------------------------------------------------|
| + *** + + + ** * + + |
| ** * ** * |
| * * * * |
| * * * * |
0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| * * * * |
| * * * * |
0 |-+ * * * * +-|
| * * * |
| * * * |
| * * * |
| * * * |
-0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| **** * * * |
| + + *+* + + *+* |
-1 |-------------------------------------------------------------|
0 2 4 6 8 10 12 14
不幸的是,这仍然依赖于使用临时文件dummy.txt
。但是糟糕的Octave 文档没有提供任何明显的替代方案,也没有提供示例。在阅读难以理解的文档时,最好通过以下相关问题来解释和猜测:
作为脚本 CLI 会话:
$ cat foo.m
#!/usr/bin/env octave
graphics_toolkit ("gnuplot")
setenv GNUTERM dumb
x = -2*pi:2*pi;
y = sin(x);
plot(y)
pause (2);
然后运行:octave-cli foo.m
。
作为一个单行:
octave-cli.exe --eval "graphics_toolkit gnuplot;setenv GNUTERM dumb; plot(sin(-2*pi:2*pi)); pause(2)"
注意:pause
获得任何输出都需要 !
如果您正在寻找 print 命令的其他选项(使用gnuplot时),请执行以下操作:
gnuplot -e "set term"
gnuplot -e "set terminal dumb; plot sin(x);"
例如,在适当支持的 ANSI xterms 中,您可以将Sixel用于:
gnuplot -e "set terminal sixelgd; plot sin(x);"