需要绘图时八度冻结
Octave freeze when it needs to plot
我在 Octave 绘图时遇到问题。 Octave 和 Gnuplot 在 OS X El Capitan 上与 Homebrew 一起安装,在尝试完成第一个绘图后,出现错误:
set terminal aqua enhanced title "Figure 1" size 560 420 font
"*,6" dashlength 1
此问题已使用 this answer 中的说明修复,简而言之:
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
回声'
现在,当我绘制时,例如。 plot(rand(3))
,然后 Octave 就冻结了,所以我必须使用 Control-C 来中止。当我尝试直接从 Gnuplot 和 set term aqua
绘图时,它起作用了,我得到了绘图。但是在 Octave 中,当我想要 set term aqua
或 set term
时,它会报告:
error: invalid conversion from string to real N-d array error: set:
expecting graphics handle as first argument
另外,我试过:
echo -E "setenv('GNUTERM','X11')" > ~/.octaverc
但这也无济于事。我认为问题出在 graphics_toolkit,但我不知道如何解决。
octave:1> graphics_toolkit aqua
error: graphics_toolkit: aqua toolkit is not available
error: called from
graphics_toolkit at line 81 column 5
octave:2> graphics_toolkit fltk
error: graphics_toolkit: fltk toolkit is not available
error: called from
graphics_toolkit at line 81 column 5
更新
接受的解决方案在版本 4.2.0-rc2
之前有效,所以现在查看 了解更多信息。
我注意到当我输入命令 available_graphics_toolkits
时它只显示
ans =
{
[1,1] = gnuplot
}
当我尝试使用 loaded_graphics_toolkits
时,它会打印出
ans = {}(1x0)
我猜问题是没有加载 GUI 环境,所以 Octave 然后用 --with-gui
选项重新编译
brew reinstall octave --with-gui
这解决了一个问题。
更新
据此commit, from last September, version 4.2.0-rc2, --with-gui
does not work anymore. So the best it to follow the instruction from 。
虽然 available_graphics_toolkits
和 loaded_graphics_toolkits
返回了类似的结果,但米勒接受的答案对我不起作用。 octave 包似乎不再有 --with-gui
标志。
相反,我必须先 brew reinstall gnuplot --with-x11
然后创建一个包含内容
的 ~/.octaverc
setenv("GNUTERM", "X11")
graphics_toolkit("gnuplot")
我确实预装了 X11。
The first plot after starting Octave 4 can last a while.
来自 Octave 命令行的 setenv("GNUTERM","qt") 为我解决了这个问题!
见程回答:
我必须将 Octave 从 4.4.0 更新到最新版本 5.2.0 才能解决这个问题。
但是我还是想不通为什么以前的版本一开始就不正常。
我在 Octave 绘图时遇到问题。 Octave 和 Gnuplot 在 OS X El Capitan 上与 Homebrew 一起安装,在尝试完成第一个绘图后,出现错误:
set terminal aqua enhanced title "Figure 1" size 560 420 font "*,6" dashlength 1
此问题已使用 this answer 中的说明修复,简而言之:
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
回声'
现在,当我绘制时,例如。 plot(rand(3))
,然后 Octave 就冻结了,所以我必须使用 Control-C 来中止。当我尝试直接从 Gnuplot 和 set term aqua
绘图时,它起作用了,我得到了绘图。但是在 Octave 中,当我想要 set term aqua
或 set term
时,它会报告:
error: invalid conversion from string to real N-d array error: set:
expecting graphics handle as first argument
另外,我试过:
echo -E "setenv('GNUTERM','X11')" > ~/.octaverc
但这也无济于事。我认为问题出在 graphics_toolkit,但我不知道如何解决。
octave:1> graphics_toolkit aqua
error: graphics_toolkit: aqua toolkit is not available
error: called from graphics_toolkit at line 81 column 5
octave:2> graphics_toolkit fltk
error: graphics_toolkit: fltk toolkit is not available
error: called from graphics_toolkit at line 81 column 5
更新
接受的解决方案在版本 4.2.0-rc2
之前有效,所以现在查看
我注意到当我输入命令 available_graphics_toolkits
时它只显示
ans =
{
[1,1] = gnuplot
}
当我尝试使用 loaded_graphics_toolkits
时,它会打印出
ans = {}(1x0)
我猜问题是没有加载 GUI 环境,所以 Octave 然后用 --with-gui
选项重新编译
brew reinstall octave --with-gui
这解决了一个问题。
更新
据此commit, from last September, version 4.2.0-rc2, --with-gui
does not work anymore. So the best it to follow the instruction from
虽然 available_graphics_toolkits
和 loaded_graphics_toolkits
返回了类似的结果,但米勒接受的答案对我不起作用。 octave 包似乎不再有 --with-gui
标志。
相反,我必须先 brew reinstall gnuplot --with-x11
然后创建一个包含内容
~/.octaverc
setenv("GNUTERM", "X11")
graphics_toolkit("gnuplot")
我确实预装了 X11。
The first plot after starting Octave 4 can last a while.
setenv("GNUTERM","qt") 为我解决了这个问题! 见程回答:
我必须将 Octave 从 4.4.0 更新到最新版本 5.2.0 才能解决这个问题。 但是我还是想不通为什么以前的版本一开始就不正常。