虽然对于这个问题有许多部分的答案,但在 Windows 上通过 WSL & Cygwin 对我有效的唯一方法如下。
作为交互式 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
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
命令才能输出结果!
如果你正在使用 gnuplot 并寻找其他命令替代 print 命令,请执行以下操作:
gnuplot -e "set term"
gnuplot -e "set terminal dumb; plot sin(x);"
例如,在得到适当支持的 ANSI xterms 中,您可以使用
sixel 来进行以下操作:
gnuplot -e "set terminal sixelgd; plot sin(x);"
![enter image description here](https://istack.dev59.com/0nqNJ.webp)