Plot inline anzeigen, statt in interaktivem Fenster

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
dot
User
Beiträge: 12
Registriert: Montag 25. September 2017, 18:48

Hallo Leute,

bin neu hier, auch ein Neuling was Python betrifft. Bisher läuft es jedoch ganz gut, auch dank der vielen tollen Foren, wo man vieles nachlesen kann. Habe jetzt ein Problem, zu dem ich bisher keine Lösung gefunden habe. Ich arbeite mit Spyder und möchte meine Plots inline, zusammen mit dem anderen Output anzeigen. Bisher ging das immer, jetzt poppt plötzlich der Plot in einem extra Fenster auf. Habe in "tools" gesucht, aber nichts gefunden um es wieder rückgängig zu machen. Ein spyder-reset hat auch nichts gebracht. Am Code habe ich nichts geändert:

Code: Alles auswählen

import numpy as np
from numpy import arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show


n=3

def U(i,x,y):
    return i*np.sin(i*x)*np.sin(i*y)

x = arange(-1.0,1.0,0.01)
y = arange(-1.0,1.0,0.01)
X,Y = meshgrid(x, y) # grid of point
for i in xrange(n):
    print str(i)
    Z = U(i,X,Y) # evaluation of the function on the grid
    im = imshow(Z,cmap=cm.RdBu) # drawing the function
    cset = contour(Z,arange(-0.99,1.0,0.99),linewidths=2,cmap=cm.Set2)#adding the contour lines with labels
    clabel(cset,inline=True,fmt='%1.1f',fontsize=10)
    colorbar(im)
    show()
Es ist so gedacht, dass es n Plots gibt, jedes mal die Funktion U(i,x,y) mit der Variable i. Bisher hat das auch funktioniert. Jetzt kriege ich dieses Fenster, und darin nur einen Plot mit n colorbars.
Danke schon mal, falls mir jemand helfen kann.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Der Code ist wohl für Python 2 geschrieben und wenn ich nun für Python 3 range statt xrange verwende und print klammere, dann erhalte ich 3 Fenster hintereinander, die sich nicht von den bisher gewohnten matplotlib Fenstern unterscheiden. Soweit ich weiß gibt es Einbindungsmöglichkeiten in unterschiedliche GUIs, nur etwas anderes als mit Tkinter habe ich noch nicht ausprobiert.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

dot hat geschrieben:Habe in "tools" gesucht, aber nichts gefunden um es wieder rückgängig zu machen.
Tools > Preferences > iPython console > Graphics > Graphics backend > Inline
a fool with a tool is still a fool, www.magben.de, YouTube
dot
User
Beiträge: 12
Registriert: Montag 25. September 2017, 18:48

Danke,
aber das bringt nichts, da ich gar nicht die IPython console benutze. Habe es vorsichtshalber dennoch probiert, aber es bringt nichts, auch nicht nach einem Neustart von Python.
dot
User
Beiträge: 12
Registriert: Montag 25. September 2017, 18:48

Mir ist gerade aufgefallen, dass es mein Problem löst die IPython Konsole zu nutzen (habe es gerade probiert) trotzdem würde mich interessieren, wie ich das ohne IPython hinbekomme. Unter Tools>Preferences>Console gibt es leider keine Optionen für Plots.
Antworten