当需要绘制时,Octave会冻结

mil*_*ler 14 macos plot gnuplot octave

我有一个问题从Octave绘图.Octave和Gnuplot在OS X El Capitan上与Homebrew一起安装,在尝试完第一个绘图后,我收到错误:

set terminal aqua增强标题"图1"大小560 420字体"*,6"dashlength 1

使用此答案中的说明修复此问题,简而言之:

brew uninstall gnuplot

sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.1.0.0.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/Headers /usr/local/include/aquaterm

brew install gnuplot --with-aquaterm
Run Code Online (Sandbox Code Playgroud)

回声'

现在,当我做情节时,例如.plot(rand(3))然后Octave只是冻结,所以我必须做Control-C才能中止.当我尝试直接从Gnuplot绘图时set term aqua,它可以工作,我得到了情节.但是在Octave,当我想要set term aqua或者set term,它报告:

错误:从字符串到实际Nd数组的无效转换错误:set:

期待图形处理作为第一个参数

另外,我试过:

echo -E "setenv('GNUTERM','X11')" > ~/.octaverc
Run Code Online (Sandbox Code Playgroud)

但这也没有帮助.我认为问题出在graphics_toolkit上,但我不知道如何解决这个问题.

octave:1> graphics_toolkit aqua
Run Code Online (Sandbox Code Playgroud)

错误:graphics_toolkit:aqua工具包不可用

错误:从第81行第5列的graphics_toolkit调用

octave:2> graphics_toolkit fltk
Run Code Online (Sandbox Code Playgroud)

错误:graphics_toolkit:fltk工具包不可用

错误:从第81行第5列的graphics_toolkit调用

更新

接受的解决方案可以使用到版本4.2.0-rc2,因此现在请查看答案中更新以获取更多信息.

mil*_*ler 13

我注意到当我输入命令available_graphics_toolkits它只显示

ans =

{

[1,1] = gnuplot

}

我试着用loaded_graphics_toolkits它打印

ans = {}(1x0)

我猜测问题是没有加载GUI环境,所以Octave然后用--with-gui选项重新编译

brew reinstall octave --with-gui
Run Code Online (Sandbox Code Playgroud)

这解决了一个问题.

更新

根据这个提交,从去年9月开始,版本4.2.0-rc2 --with-gui不再起作用了.所以最好遵循康斯坦丁的指示.


Kon*_*inK 8

米勒接受的答案对我来说不起作用,尽管available_graphics_toolkitsloaded_graphics_toolkits返回了类似的结果.八度音程包似乎--with-gui不再有旗帜了.

相反,我必须做的是让它工作brew reinstall gnuplot --with-x11,然后创建一个~/.octaverc内容

setenv("GNUTERM", "X11")
graphics_toolkit("gnuplot")
Run Code Online (Sandbox Code Playgroud)

我确实预装了X11.

  • 这是一个很好的提示.我不得不从图形工具包'qt'切换到'gnuplot',这使它停止了悬挂. (2认同)