Matplotlib : Köcher und imshow überlagert, wie kann ich zwei colorbars?
Habe ich eine Figur, die aus einem Bild angezeigt imshow()
einer Kontur und einem Vektorfeld Satz von quiver()
. Ich habe die farbigen Vektor-Feld, basierend auf einem anderen skalaren Menge. Auf der rechten Seite meiner Figur, ich habe einen colorbar()
. Diese colorbar()
repräsentiert die Werte angezeigt, die von imshow()
(das kann positiv und negativ in meinem Fall). Ich würde gerne wissen, wie könnte ich setup eine andere Farbskala, die wäre auf der Grundlage der Werte der skalaren Menge auf, welche die Farbe der Vektoren basiert. Weiß jemand wie das geht?
Hier ist ein Beispiel, das Bild habe ich in der Lage zu machen. Beachten Sie, dass die Farben der Vektoren gehen von blau zu rot. Nach der aktuellen Farbskala, blau bedeutet negativ. Aber ich weiß, dass die Menge, dargestellt durch die Farbe des Vektors ist stets positiv.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rufen Sie einfach
colorbar
zweimal, direkt nach jedem Plotten aufrufen. Pylab wird eine neue Farbskala passend zum aktuellen plot. Beachten Sie, dass, wie in deinem Beispiel, den Köcher Werte reichen von 0,1, während die imshow nimmt negative Werte an. Für Klarheit (nicht in diesem Beispiel gezeigt), das ich verwenden würde, verschiedenen Farbverläufen zur Unterscheidung der beiden Typen von Parzellen.colorbar
Standard-argument muss dabei sein, in der neuesten gezogen Künstler. Die docs auch vorschlagen, eine Möglichkeit zu haben, eine mehr feinkörnige Kontrolle über die colorbar -> Handlung.Läuft Köcher nicht unbedingt die Rückkehr der Art des abbildbar Objekt, das
colorbar()
erfordert. Ich denke, es könnte sein das ich da explizit "bunte Vektor-Feld, basierend auf einem anderen Skalare Quantität" wie Heimdall sagt, dass Sie es Tat. Daher Hakte die Antwort nicht für mich arbeiten.Hatte ich, um meine eigene abbildbar für die Farbe, die bar zu Lesen. Ich habe dies mithilfe der
Normalize
ausmatplotlib.colors
auf die Daten, die ich wollte zu verwenden, um die Farbe meine Köcher Vektoren (welche ich nennenC
, das ist ein array der gleichen Form wieX
,Y
,U
, undV
.)Mein Köcher Aufruf sieht wie folgt aus:
Geben, alle anderen Argumente der Funktion colorbar gab mir eine Vielzahl von Fehlern.
C = dt * np.arange(len(X))