绘图窗口无响应


73

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

例如 :

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

奇怪的是,当绘图窗口冻结并且我必须关闭八度窗口时,它们也将无响应。如果我不使用绘图功能,则不会发生这种情况。

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

Answers:


130

问题可能出在您安装的Octave安装所使用的图形工具包中。

要检查这一点,请graphics_toolkit在Octave命令行中键入。

如果响应是fltk并且您的绘图窗口处于冻结状态,则将默认工具箱切换为gnuplotgraphics_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


还是行不通?

  • 如果response是qt,请尝试一个fltkgnuplot(一个可能比另一个快)。

  • 如果上述方法不起作用,则可能需要安装/重新安装gnuplot。(感谢lukas和saurabh的这种优势)。


1
测试代码不应为-x = 1:10; y = x。^ 2; plot(x,y)注意x。^ 2而不是.x ^ 2
odedbd 2014年

13
在我的情况下,默认工具包是“ qt”,并且已解决了切换到“ fltk”的问题(我尝试了“ gnuplot”,但速度非常慢)。Windows 7x64。
Gerbus 2015年

3
在我的情况下,默认工具包是“ qt”,“ gnuplot”和“ fltk”都可以使用。Windows 8 x64。
武安

2
@AssadEbrahim:您可能想更新最后提供的链接。谢谢:在我的情况下,默认值为“ qt”。gnuplot工作太慢,“ fltk”工作正常!Windows 10 x64; 八度4.0.0
Prakhar Agrawal

2
在Linux上,此文件位于〜/ .octaverc
ruX

14

正如Assad Ebrahim所写,问题出在工具包上。我在版本3.8.2中遇到另一个问题。gnuplot根本不起作用。没有显示绘图窗口,我需要关闭Octave。如果有人遇到相同的问题,解决方案是下载gnuplot并将其安装到Octave文件夹。它取代了旧的gnuplot,而新的gnuplot正在运行。

我感谢您的建议。


1
这正是我遇到的问题,仅将graphisc_toolkit('gnuplot)更改为gnuplot并不能解决问题。但是重新安装gnuplot了!谢谢你!
Milen Kovachev

13

哦。我的朋友向我展示了此命令,它可以正常工作:

pkg rebuild -noauto oct2mat

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

问题在于,永远不要加载oct2mat软件包。它遮盖了Octave核心的几个功能,因此开始表现怪异。除非您确实需要此软件包,否则最好将其删除。

oct2mat的目的是弥补Matlab中缺少的功能,并使为Octave编写的代码在Matlab中运行。如果不需要oct2mat,请将其删除。没有人需要安装所有软件包,并且实际上可能会使您的Octave安装变得更糟,例如oct2mat。


3
请在哪里运行此命令?我正在使用Ubuntu,终端无法识别pkg,Octave只是说no such file or directory
Martin Drozdik

6
我在Octave 4.0中遇到了同样的问题。我解决了在C创建空目录“包”:\倍频\倍频4.0.0 \共享\八度
Szymon克诺普

11

因此,在Windows上,这对我有用:

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

下载链接:

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

步骤2: 转到给定目录下的目录(考虑您已在C:\ root中安装Octave):

C:\ Octave \ share \ octave \ site \ m \ startup

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

第三步:

在文件末尾添加以下行。

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秒。


很好的解释。谢谢:)
杰芬·曼努埃尔

3
第5步让我很烦。为什么在地球上需要5分钟,5秒甚至5毫秒?这太荒谬了。
罗伯特(Robert

步骤5救了我。+1!。那和graphics_toolkit('gnuplot')一样。(对我来说,实际上不是5分钟,而是30秒。)
myfirstAnswer '18

8

阿萨德(Assad给出的答案是绝对正确的,并且对我也很好。

这只是一个例外情况。

在八度命令行中键入后: graphics_toolkit

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

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

您不需要更改任何安装文件。

这应该工作


我在Octave-4.0.3中也得到了“ qt”。我必须将gnuplot的标准终端设置为Windows,并且必须将gnuplot_binary`C:\ Program Files(x86)\ gnuplot \ bin \ gnuplot.exe'添加到.oc​​taverc
Oliver Zendel

我分别安装了gnu plot。但是问题仍然没有解决
dulaj sanjaya

2

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


我也经历了这种行为。它看起来像它需要一段时间才能产生Windows上的字体缓存:stackoverflow.com/a/48247691/597487
拉蒙

0

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

解:

选项1:转到命令窗口并按住f(向前)

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

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

选项3:调整一些命令窗口设置

希望能帮助到你


0

我在4.0.3版中遇到了同样的问题,并且将默认工具箱切换到gnuplot,正如Assad Ebrahim所说对我不起作用。然后,我在用于Microsoft Windows的Octave中找到了一些东西:

Windows的当前八度音程附带功能不全的gnuplot。因此,您不能使用gnuplot图形工具包的全部功能

并提供了有关如何下载和安装gnuplot的说明。希望对您有帮助。


0

以下是从Emacs中运行Octave时冻结绘图窗口的解决方案,该问题归功于John Lawrence Aspdenuser2699,该问题来自于如何使Octave的绘图在emacs下工作?。之所以来到这里,是因为这个问题更容易找到。

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


0

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

在此处输入图片说明

永久解决方案,已编辑

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

如果您想重新启用此功能,请使用 more on

文件资料

相关问题

防止用户在命令窗口上进行八度音阶交互

无法在gui命令窗口中停止执行

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.