matplotlib zip?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MB
User
Beiträge: 19
Registriert: Montag 5. Januar 2009, 15:07

Hallo Anfängerfreunde,

Ich bin seit zwei Monaten dabei, pthon zu erlernen: mcht #ne Menge Spass. Jetzt bin ich auf einProblem bei folgender Demo gestossen:

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))

def onclick(event):
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)

cid = fig.canvas.mpl_connect('button_press_event', onclick)

def onpick(event):
    thisline = event.artist
    xdata = thisline.get_xdata()
    ydata = thisline.get_ydata()
    ind = event.ind
    print 'onpick points:', zip(xdata[ind], ydata[ind])

fig.canvas.mpl_connect('pick_event', onpick)

plt.show()
Die Funktion onpick funktioniert nicht. Ich denke das liegt an zip(). Ich konnte leider nicht zu disem Ausdruck finden. Wofür steht der ? Bei mir ist er auch NICHT grün, wie in dem Demo-Code.
Kann mir jemand weiterhelfen?

Gruß
MB
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

zip ist eine built-in Funktion, d.h. an mangelnder Verfügbarkeit kann es nicht liegen (Ich nehme mal an du nutzt kein Python 3, denn Matplotlib und numpy sind noch nicht portiert)
zip packt übergebene Sequenzen zu einer Sequenz von Tupeln zusammen.

Nunja ... ob das grün, gelb, dunkelrosa oder etwas anderes ist, hat mit gültigem Code wenig zu tun und ist Sache des Editors. Wenn du uns die Fehlermeldung mitteilst kann dir schon eher geholfen werden, sonst artet das hier nur in gerate aus .. und meine Kristallkugel ist schon wieder in Reparatur :(
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Und wenn Du gerade dabei bist ... Kannst Du uns auch sagen welches GUI-backend Du verwendest bzw. wogegen ist mpl kompiliert und was steht in Deinem matplotlibrc-File, falls Du ein solches hast?

Bei mir nämlich läuft der obige Code fehlerlos (mit wx).

Gruß,
Christian
MB
User
Beiträge: 19
Registriert: Montag 5. Januar 2009, 15:07

Hallo,
ich benutze python 2.5. das ich mir als bundle von python(xy) geladen habe.

Nein, eine Fehlermedlung bekomme ich keine; allerdings bekomme ich auck das onpick print statement nicht, wenn ich auf die Kurve klicke; hingegen funktioniert onclick print schon.

Das backend, das ich benutze ist Qt4Agg.
Wonach soll ich denn in matplotlibrc suchen ?

Vielen Dank, MB
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Ich könnte mir auch eine zu alte Matplotlib-Version als Grund vorstellen.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten