Seite 1 von 1

Plot inline anzeigen, statt in interaktivem Fenster

Verfasst: Montag 25. September 2017, 20:35
von dot
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.

Re: Plot inline anzeigen, statt in interaktivem Fenster

Verfasst: Dienstag 26. September 2017, 06:18
von Melewo
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.

Re: Plot inline anzeigen, statt in interaktivem Fenster

Verfasst: Dienstag 26. September 2017, 07:21
von MagBen
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

Re: Plot inline anzeigen, statt in interaktivem Fenster

Verfasst: Dienstag 26. September 2017, 08:45
von dot
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.

Re: Plot inline anzeigen, statt in interaktivem Fenster

Verfasst: Dienstag 26. September 2017, 09:03
von dot
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.