绘图窗口无响应

时间:2012-08-20 05:04:46

标签: plot octave hang

我正在使用Windows 7 64位。每次,我都使用绘图功能,绘图窗口会成功显示和绘制,但之后它会停止响应并且必须关闭它。

例如:

x = linspace(0,1,10)
y = x.^2
plot(x,y);
奇怪的是,当情节窗口冻结并且我必须关闭八度窗口时,它们也会没有响应。如果我不使用绘图功能,就不会发生这种情况。

我不知道为什么。是因为我使用的是64位版本吗?请告诉我如何解决这个问题。

10 个答案:

答案 0 :(得分:123)

问题很可能是您的Octave安装使用的图形工具包。

要检查此项,请在Octave命令行中键入graphics_toolkit

如果响应为fltk且您的绘图窗口冻结,则将默认工具包切换为gnuplot graphics_toolkit('gnuplot')

测试问题是否已修复:x=1:10; y=x.^2; plot(x,y)

在Octave安装目录中的octave.rc文件中永久更改:

    On Windows:  \Octave\share\octave\site\m\startup\octaverc
    On Linux:     ~/.octaverc

<小时/> 仍然没有工作?

  • 如果回复为qt,请尝试fltkgnuplot(一个可能比另一个更快)。

  • 如果上述方法不起作用,您可能需要install/re-install gnuplot。 (感谢lukas和saurabh这个边缘案例)。

答案 1 :(得分:14)

正如阿萨德·易卜拉欣所写,问题在于工具包。我在3.8.2版本中遇到了另一个问题。那个gnuplot根本没用。没有绘图窗口,我需要关闭Octave。如果有人遇到同样的问题,解决方案是下载gnuplot并将其安装到Octave文件夹。它取代了旧的gnuplot,而新的gnuplot正在运行。

我感谢你的建议。

答案 2 :(得分:13)

喔。我的朋友告诉我这个命令,它工作正常:

pkg rebuild -noauto oct2mat

该命令会重新安装程序包,但会在启动时将其标记为默认不加载。此行为现​​已更改,默认情况下不会加载Forge软件包的新版本。

问题是永远不应该加载包oct2mat。它会影响Octave核心的几个功能,因此它开始表现得很奇怪。除非你真的需要这个软件包,否则你最好不要删除它。

oct2mat的目的是弥补Matlab中缺少缺少的函数,并使用Octlab编写的代码在Matlab中运行。如果您不需要oct2mat,请将其删除。没有人需要安装所有软件包,它实际上可以是make your Octave install worse,例如在oct2mat的情况下。

答案 3 :(得分:11)

所以在Windows上,这对我有用:

第1步: 将gnuplot安装到C:\Program Files (x86)\gnuplot

下载链接:

  

https://sourceforge.net/projects/gnuplot/

第2步: 转到给定目录下面(考虑到你已经在C:\ root中安装了Octave):

  

C:\倍频\共享\倍频\站点\米\启动

在记事本中打开该目录中的octaverc文件。

第3步:

将以下行添加到文件末尾。

gnuplot_binary 'C:\Program Files (x86)\gnuplot\bin\gnuplot.exe'
graphics_toolkit('gnuplot')

第4步:

保存文件并退出记事本。如果Octave已打开,请将其关闭。

第5步:

打开Octave并在其中输入以下命令以检查:

plot([1,2,3],[4,5,6]);
  

请注意第一次gnuplot最多可能需要5分钟   渲染图形。所以,请不要试图关闭该应用程序。随后   简单的图表很快就会呈现,通常不到1秒。

答案 4 :(得分:8)

Answer given by Assad绝对正确,对我也很有用。

这只是一个例外情况。

键入Octave命令行后:graphics_toolkit

如果答案是qt而不是fltk,则可能需要将您的PC与SourceForge分开安装 gnuplot ,因为Octave在W8中安装时会出现一些错误/ 10。

这是附加的链接。 https://sourceforge.net/projects/gnuplot/?source=directory

您无需更改任何安装文件。

这应该有效

答案 5 :(得分:2)

当我第一次测试绘制示例图时,图形窗口出现但没有响应一到两分钟,然后出现了图。进一步的情节立即出现。 O.S。:Windows 7 64位 Octave 4.0.3 64 bit。

答案 6 :(得分:0)

我在运行代码时使用八度音程4.2有类似的症状(无法关闭绘图窗口,绘图需要时间才能显示)。当语句不以分号(;)结束时,命令和结果将在命令窗口中打印。它告诉我,命令窗口停止代码的解释并等待用户按下有效键(f,b,q)以保持或中止执行。停止点取决于先前执行的代码和命令窗口的大小,因此这些症状的间歇性。

<强>解决方案:

选项1:进入命令窗口并按f(向前)

选项2:使用分号终止语句

x = linspace(0,1,10);
y = x.^2;
plot(x,y);

选项3:摆弄一些命令窗口设置

希望有所帮助

答案 7 :(得分:0)

我在版本4.0.3中遇到了同样的问题,并将默认工具包切换到gnuplot,因为Assad Ebrahim said对我不起作用。然后我在Octave for Microsoft Windows找到了一些东西:

  

Windows的当前八度音阶发布了一个功能不全的gnuplot。   因此,您无法使用gnuplot图形工具包的全部功能

还有如何下载和安装gnuplot的说明。希望它对你有所帮助。

答案 8 :(得分:0)

以下是在从Emacs中运行八度音阶时将绘图窗口冻结的解决方案,该问题归因于问题John Lawrence Aspdenuser2699How to get Octave's plot to work under emacs?。之所以来到这里,是因为这个问题更容易找到。

该问题可能是由Emacs八度模式的M-x customize-variable RET inferior-octave-startup-args RET开关引起的,您可以通过--no-line-editing进行修复并将--line-editing更改为strlen(toPrint)

答案 9 :(得分:0)

我有同样的问题, 有时linspace在命令窗口中显示所有结果,并等待您的交互。 在命令后添加;,或点击q在命令窗口中退出 x = linspace(0,10,100);

enter image description here

永久解决方案,已编辑

通过将more off放入八度音阶命令窗口来禁用对屏幕输出的分页。这样可以防止代码等待您看到所有行。

如果您想重新打开它,请使用more on

documentation

相关问题

prevent-user-interaction-on-command-window-for-octave

Can't stop execution in gui command window