使用Matlab/Octave绘制字符模式(shell)图?
这也许有点奇怪,但无论如何。有时,我在各地(大陆)的服务器或实验室计算机中使用ssh来检查资料,有时甚至运行Matlab或Octave来查看最新数据等。然后,当我需要任何类型的绘图时,乐趣就开始了。要么我通过互联网将一大块可能是垃圾的东西复制到我的电脑上,然后在本地生成情节。或者,如果前面的尝试没有选择,我将通过ssh和X-forwarding运行Matlab,这对于低带宽和/或高ping来说是痛苦的使用Matlab/Octave绘制字符模式(shell)图?,matlab,shell,plot,octave,ascii-art,Matlab,Shell,Plot,Octave,Ascii Art,这也许有点奇怪,但无论如何。有时,我在各地(大陆)的服务器或实验室计算机中使用ssh来检查资料,有时甚至运行Matlab或Octave来查看最新数据等。然后,当我需要任何类型的绘图时,乐趣就开始了。要么我通过互联网将一大块可能是垃圾的东西复制到我的电脑上,然后在本地生成情节。或者,如果前面的尝试没有选择,我将通过ssh和X-forwarding运行Matlab,这对于低带宽和/或高ping来说是痛苦的 事实上,我想知道是否有一种方法可以在一个外壳中生成老式的80年代风格的角色模式的情节,至少是简
事实上,我想知道是否有一种方法可以在一个外壳中生成老式的80年代风格的角色模式的情节,至少是简单的线条或点的情节(没有X-forwarding)。拥有一个“丑陋”(但很酷?)的角色模式情节至少能让我确定自己是在看一条直线、一条抛物线还是一堆垃圾——这可能会非常有用。我知道,有些东西可以由聪明的数学来决定,但是,嘿,抽象思维被高估了
编辑。。。另一个相关的(?)标记。命令(和朋友)使用Java图形库,在纯文本模式下显然不起作用。顺便说一句,没有办法绕过这些底层库调用并将任何图形输出重定向到某个ASCII艺术转换器/生成器 您可能希望尝试类似建议的方法: 然后
scp/rsync
文件.fig结束(这有点像X-forwarding真的…)
当然,您可以编写一个函数来生成绘图,将其存储到tempfile(如上所述),然后传递PNG/JPG/。。。通过(或),其输出随后显示在终端中。对于倍频程,您应该没有问题。我通常通过ssh在远程机器上进行计算,并一直使用它 只要您将gnuplot作为图形工具包(供将来参考,从3.6.2开始,这仍然是默认的,但将来可能会更改为fltk),如果没有X显示,您将获得ASCII图
要确保您拥有正确的图形工具包,只需在提示符处键入
graphics\u toolkit
。要将其更改为gnuplot,请使用图形工具集gnuplot
尽管这个问题有很多部分答案,但通过WSL和Cygwin在Windows上唯一有效的方法是以下内容
#启动Octave CLI会话:
octave-cli.exe-iWq
图形工具集(“gnuplot”)
x=-2*pi:2*pi;
y=sin(x);
图(1,“可见”、“关闭”);
绘图(y)
打印(1,“-ddumb”,“dummy”);类型-q dummy.txt
生成:
1 |-------------------------------------------------------------|
| + *** + + + ** * + + |
| ** * ** * |
| * * * * |
| * * * * |
0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| * * * * |
| * * * * |
0 |-+ * * * * +-|
| * * * |
| * * * |
| * * * |
| * * * |
-0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| **** * * * |
| + + *+* + + *+* |
-1 |-------------------------------------------------------------|
0 2 4 6 8 10 12 14
不幸的是,这仍然依赖于使用临时文件dummy.txt
。
但可怕的坏消息并没有提供任何明显的替代方案,也没有提供任何例子。在阅读完不可理解的文档后,最好通过以下相关问题进行解释和猜测:
$cat foo.m
#!/usr/bin/env倍频程
图形工具集(“gnuplot”)
setenv GNUTERM dumb
x=-2*pi:2*pi;
y=sin(x);
绘图(y)
暂停(2);
然后运行:octave cli foo.m
octave-cli.exe--eval“graphics_toolkit gnuplot;setenv GNUTERM dumb;绘图(sin(-2*pi:2*pi));暂停(2)”
注意:暂停
是获得任何输出所必需的强>
如果正在寻找打印命令的其他选项(使用gnuplot时),请执行以下操作:
gnuplot-e“设置术语”
gnuplot-e“将终端设为哑;绘制sin(x);”
例如,在正确支持的ANSI xterms中,可以将sixel与以下各项一起使用:
gnuplot-e“设置端子六个ELGD;绘制sin(x);”
“抽象思维被高估了”……好吧,我们不要去那里:)是的,这是一个很好的解决方案,不过,我最终还是复制了一些东西。我更想知道的是,我是否可以“留在”shell中而不需要复制文件。。。是的,在问题1853259中,他们仍然使用x-forwarding,实际上没有转发完整的界面。@ernestopheles:请参阅我的编辑。不过,这需要做一些工作,而且质量也不确定。好主意;等我有时间的时候,我会为这件事伤脑筋的:)这件事解决了。它并不漂亮,我以前见过更好的ASCII艺术,但确实很好。尽管如此,在gnuplot中并没有多少关于这个特性的文档。例如,彩色线将非常棒。@ernestopheles在搜索此功能时,了解终端类型名称为“dumb”可能会很有用。彩色线条其实很酷,也许你可以给它们贴个补丁。我想现在,它只演不同的角色。是的,我发现了“哑巴”。在一些gnuplotpdf文档中找到它需要一些时间。好吧,它说,“哑巴”是存在的——就是这样。这在
版本5.1.0
中仍然可用吗?我不能让它工作。您的$TERM
设置和graphics\u toolkit()
是什么?其他哪些设置是相关的?
1 |-------------------------------------------------------------|
| + *** + + + ** * + + |
| ** * ** * |
| * * * * |
| * * * * |
0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| * * * * |
| * * * * |
0 |-+ * * * * +-|
| * * * |
| * * * |
| * * * |
| * * * |
-0.5 |-+ * * * * +-|
| * * * * |
| * * * * |
| **** * * * |
| + + *+* + + *+* |
-1 |-------------------------------------------------------------|
0 2 4 6 8 10 12 14