Plotfenster reagiert nicht

73

Ich verwende Windows 7 64-Bit. Jedes Mal, wenn ich die Plotfunktion verwende, werden Plotfenster erfolgreich angezeigt und gezeichnet, aber danach reagiert es nicht mehr und muss heruntergefahren werden.

Zum Beispiel :

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

Seltsamerweise reagieren Plotfenster, wenn sie einfrieren und ich Oktavfenster schließen muss, auch nicht mehr. Dies wird nicht passieren, wenn ich keine Plotfunktion verwende.

Ich weiß nicht warum. Liegt es daran, dass ich eine 64-Bit-Version verwende? Bitte sagen Sie mir, wie ich das beheben kann.

hqt
quelle

Antworten:

130

Das Problem ist wahrscheinlich das Grafik-Toolkit, das Ihre Installation von Octave verwendet.

Um dies zu überprüfen, geben Sie graphics_toolkitdie Octave-Befehlszeile ein.

Wenn die Antwort lautet fltkund Ihr Plotfenster einfriert, wechseln Sie das Standard-Toolkit zu gnuplot :graphics_toolkit('gnuplot')

Testen Sie, ob das Problem behoben ist: x=1:10; y=x.^2; plot(x,y)

Machen Sie die Änderung dauerhaft in Ihrer Datei octave.rc, die sich in Ihrem Octave-Installationsverzeichnis befindet:

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


Funktioniert immer noch nicht?

  • Wenn die Antwort lautet qt, versuchen Sie es entweder fltkoder gnuplot(einer ist möglicherweise schneller als der andere).

  • Wenn das oben genannte nicht funktioniert, müssen Sie möglicherweise gnuplot installieren / neu installieren . (danke an lukas und saurabh für diesen kantenfall).

Assad Ebrahim
quelle
1
Sollte der Testcode nicht x = 1: 10 sein? y = x. ^ 2; Plot (x, y) Beachten Sie die x. ^ 2 anstelle von .x ^ 2
odedbd
13
In meinem Fall war das Standard-Toolkit "qt" und der Wechsel zu "fltk" war das Update (ich habe "gnuplot" ausprobiert, aber es war furchtbar langsam). Windows 7x64.
Gerbus
3
In meinem Fall war das Standard-Toolkit "qt". Sowohl "gnuplot" als auch "fltk" funktionierten. Windows 8 x64.
Vu Anh
2
@AssadEbrahim: Möglicherweise möchten Sie den am Ende angegebenen Link aktualisieren. Danke: In meinem Fall war der Standard "qt". gnuplot arbeitete zu langsam, "fltk" funktioniert gut! Windows 10 x64; Oktave 4.0.0
Prakhar Agrawal
2
Unter Linux befindet sich diese Datei unter ~ / .octaverc
ruX
14

Wie Assad Ebrahim schrieb, liegt das Problem beim Toolkit. Ich habe ein anderes Problem in Version 3.8.2. dass der Gnuplot überhaupt nicht funktioniert hat. Es wurden keine Plotfenster angezeigt und ich musste Octave schließen. Wenn jemand das gleiche Problem hat, besteht die Lösung darin, gnuplot herunterzuladen und im Octave-Ordner zu installieren. Es ersetzt den alten Gnuplot und der neue funktioniert.

Und ich danke Ihnen für den Rat.

lukas
quelle
1
Dies war genau das Problem, das ich hatte, und das Ändern des graphisc_toolkit ('gnuplot) in gnuplot allein löste das Problem nicht. Aber die Neuinstallation von gnuplot hat es geschafft! Danke dafür!
Milen Kovachev
13

Oh. Mein Freund zeigt mir diesen Befehl und es funktioniert gut:

pkg rebuild -noauto oct2mat

Der Befehl installiert das Paket neu, markiert es jedoch so, dass es beim Start nicht standardmäßig geladen wird. Dieses Verhalten wurde jetzt geändert und neue Versionen von Forge-Paketen werden standardmäßig NICHT geladen.

Das Problem ist, dass das Paket oct2mat niemals geladen werden sollte. Es beschattet mehrere Funktionen des Octave-Kerns, so dass es sich merkwürdig verhält. Wenn Sie dieses Paket nicht wirklich benötigen, sollten Sie es einfach entfernen.

Der Zweck von oct2mat besteht darin, das Fehlen fehlender Funktionen in Matlab auszugleichen und Code für Octave in Matlab auszuführen. Wenn Sie oct2mat nicht benötigen, entfernen Sie es. Niemand muss alle Pakete installieren, und es kann Ihre Octave-Installation sogar verschlechtern, wie im Fall von oct2mat.

hqt
quelle
3
Bitte, wo soll ich diesen Befehl ausführen? Ich benutze Ubuntu und das Terminal erkennt nicht pkgund die Oktave sagt nur no such file or directory.
Martin Drozdik
6
Ich hatte das gleiche Problem in Octave 4.0. Ich habe es gelöst, indem ich ein leeres Verzeichnis 'Pakete' in C: \ Octave \ Octave-4.0.0 \ share \ octave erstellt habe
Szymon Knop
11

Bei Windows hat das bei mir funktioniert:

Schritt 1: Installieren Sie gnuplot auf C:\Program Files (x86)\gnuplot:

Download-Link:

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

Schritt 2: Gehen Sie zum unten angegebenen Verzeichnis (vorausgesetzt, Sie haben Octave in C: \ root installiert):

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

Öffnen Sie die octavercDatei, die in diesem Verzeichnis im Editor vorhanden ist.

Schritt 3:

Fügen Sie am Ende der Datei die folgenden Zeilen hinzu.

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

Schritt 4:

Speichern Sie die Datei und beenden Sie den Editor. Wenn Octavees geöffnet ist, schließen Sie es bitte auch.

Schritt 5:

Öffnen Sie den Octavefolgenden Befehl und geben Sie ihn ein, um ihn zu überprüfen:

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

Bitte beachten Sie, dass das gnuplotRendern des Diagramms zum ersten Mal bis zu 5 Minuten dauern kann. Versuchen Sie also bitte nicht, die App zu schließen. Nachfolgende einfache Diagramme werden ziemlich schnell gerendert, normalerweise unter 1 Sekunde.

Anubhav Gupta
quelle
Gute Erklärung. Danke :)
Jeffin Manuel
3
Schritt 5 nervt mich. Warum sollte es bei EARTH 5 Minuten oder 5 Sekunden oder sogar 5 Millisekunden dauern? Es ist lächerlich.
Robert
Schritt 5 hat mich gerettet. +1! . Das und graphics_toolkit ('gnuplot') und nichts weiter. (Es waren nicht wirklich 5 Minuten, sondern nur 30 Sekunden für mich.)
myfirstAnswer
8

Die Antwort von Assad ist absolut richtig und hat auch für mich gut funktioniert.

Dies ist nur ein Ausnahmefall.

Nachdem Sie die Octave-Befehlszeile eingegeben haben: graphics_toolkit

Wenn die Antwort qtstattdessen lautet fltk, muss Ihr PC wahrscheinlich getrennt von SourceForge gnuplot installiert werden, da Octave bei der Installation in W8 / 10 einige Fehler erhält.

Hier ist der Link beigefügt. https://sourceforge.net/projects/gnuplot/?source=directory

Sie müssen keine Installationsdateien ändern.

Das sollte funktionieren

Saurabh
quelle
Ich habe auch 'qt' mit Octave-4.0.3. Ich musste das Standard-Terminal für gnuplot auf Windows setzen und gnuplot_binary `C: \ Programme (x86) \ gnuplot \ bin \ gnuplot.exe 'zu .octaverc hinzufügen
Oliver
Ich habe Gnu Plot separat installiert. Aber immer noch ist das Problem nicht gelöst
Dulaj Sanjaya
2

Als ich zum ersten Mal das Zeichnen eines Beispieldiagramms getestet habe, wurde das Diagrammfenster angezeigt, es wurde jedoch ein bis zwei Minuten lang nicht reagiert. Dann wurde das Diagramm angezeigt. Weitere Handlungen erschienen sofort. Betriebssystem: Windows 7 64-Bit Octave 4.0.3 64-Bit.

Tarik
quelle
Ich habe dieses Verhalten auch erlebt. Es sieht so aus, als würde es eine Weile dauern, bis der Schriftcache unter Windows generiert ist: stackoverflow.com/a/48247691/597487
Ramón
0

Ich habe ähnliche Symptome bei Verwendung von Oktave 4.2 beim Ausführen Ihres Codes (Plotfenster können nicht geschlossen werden, es dauert einige Zeit, bis der Plot angezeigt wird). Wenn Anweisungen nicht mit einem Semikolon (;) enden, werden Befehl und Ergebnis im Befehlsfenster gedruckt. Mir scheint, dass das Befehlsfenster die Interpretation des Codes anhält und darauf wartet, dass der Benutzer eine gültige Taste (f, b, q) drückt, um die Ausführung zu beenden oder abzubrechen. Der Haltepunkt hängt vom zuvor ausgeführten Code und der Größe des Befehlsfensters ab, daher die intermittierende Natur dieser Symptome.

Lösung:

Option 1: Gehen Sie zum Befehlsfenster und halten Sie f (vorwärts) gedrückt.

Option 2: Verwenden Sie Semikolon, um Anweisungen zu beenden

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

Option 3: Spielen Sie mit einigen Einstellungen des Befehlsfensters

Ich hoffe es hilft

Mike
quelle
0

Ich hatte das gleiche Problem in Version 4.0.3 und das Umschalten des Standard-Toolkits auf Gnuplot, wie Assad Ebrahim sagte , funktionierte bei mir nicht. Dann finde ich etwas in Octave für Microsoft Windows :

Die aktuelle Oktave für Windows liefert einen nicht voll ausgestatteten Gnuplot. Daher können Sie nicht alle Funktionen des Gnuplot-Grafik-Toolkits nutzen

Außerdem finden Sie Anweisungen zum Herunterladen und Installieren von gnuplot. Hoffe es ist hilfreich für dich.

Xin W.
quelle
0

Das Folgende ist eine Lösung für das Einfrieren von Plotfenstern, wenn Octave in Emacs ausgeführt wird. Dies wird John Lawrence Aspden und user2699 aus der Frage gutgeschrieben, wie Octaves Plot unter Emacs funktioniert. . Es wurde hierher gebracht, weil diese Frage viel einfacher zu finden ist.

Das Problem könnte durch Emacs Oktave-Modus des verursacht werden --no-line-editingSchalter, können Sie es beheben , indem Sie M-x customize-variable RET inferior-octave-startup-args RETund ändern --no-line-editingzu --line-editing.

timokratia
quelle
0

Ich hatte das gleiche Problem. Manchmal zeigt linspace Ihnen alle Ergebnisse in Befehlsfenstern an und wartet auf Ihre Interaktion.

Geben Sie hier die Bildbeschreibung ein

Lösung

;Nach Befehl hinzufügen oder drücken q, um im Befehlsfenster zu beenden x = linspace(0,10,100);

Verwandte Frage

Die Ausführung im GUI-Befehlsfenster kann nicht gestoppt werden

Grzegorz Krug
quelle