2012-03-24 8 views
1

Ich habe einen Kollegen, der mir seine Arbeitsumgebung in einer anderen Sprache gezeigt hat. Er hatte die Fähigkeit, ein leeres dict-ähnliches Objekt zu erstellen und einen Zeiger auf dieses Objekt an eine andere Diagrammbibliothek zu übergeben. Diese Diagrammbibliothek erstellt dann ein Balkendiagramm mit Fenstern. Da das dict-ähnliche Objekt leer war, zeigte das Diagramm nichts an.Wie verknüpfe ich eine Python-Datenstruktur in Matplotlib? Wie ein Diktat -> Balkendiagramm

Jetzt, als er sein dict-ähnliches Objekt durch Einfügen von Schlüssel-, Wert-Paaren in das Objekt aktualisierte, würde das Diagramm seine Änderungen in Echtzeit auf magische Weise aktualisieren.

Es schien unglaublich genial und da ich ein riesiger Python-Fan bin, möchte ich ihm zeigen, dass "alles, was er kann, wir können es besser machen!" Ich weiß jedoch nicht, wie ich das machen soll - könnt ihr mir helfen?

* Wenn es darauf ankommt, war seine Umgebung APL-basiert.

Antwort

2

Sie müssen nur eine dict Unterklasse schreiben, die eine __setitem__ Methode hat, die das Diagramm jedes Mal neu zeichnet, wenn ein Element geändert wird. Achten Sie bei Bonuspunkten darauf, dass der Artikel tatsächlich geändert wurde, um unnötige Neuzeichnungen zu vermeiden.

class Chartdict(dict): 
    def __setitem__(self, key, value): 
     if key in self: 
      if self[key] != value: 
       self[key] = value 
       # do whatever you need to do to update the chart here 

ich nicht matplotlib verwendet habe, so weiß ich nicht, was Sie wirklich tun müssen, ein Diagramm aus einem dict zu aktualisieren - ich habe links, dass dir.

+0

Ok, aber wie kann ich ein Diktat in ein Chartdict übertragen? Gibt es eine Möglichkeit, dies zu tun, ohne ein ganzes Chartdict neu zu besetzen? – user992592

+0

'mydict = Chartdict (mydict)' wird tun. Oder Sie können es einfach mit 'mydict = Chartdict()' leer starten und auf die übliche Weise Elemente hinzufügen. – kindall

Verwandte Themen