Hier ist ein Beispiel
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
Hier legen Sie die Farbe basierend auf dem Index fest t
, der nur ein Array von ist [1, 2, ..., 100]
.
Vielleicht ist ein leichter zu verstehendes Beispiel das etwas einfachere
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()
Beachten Sie, dass das Array, als c
das Sie übergeben , keine bestimmte Reihenfolge oder einen bestimmten Typ haben muss, dh nicht wie in diesen Beispielen sortiert oder ganzzahlig sein muss. Die Plotroutine skaliert die Farbkarte so, dass die minimalen / maximalen Werte in c
dem unteren / oberen Rand der Farbkarte entsprechen.
Farbkarten
Sie können die Farbkarte durch Hinzufügen ändern
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
Der Import matplotlib.cm
ist optional, da Sie auch Farbkarten aufrufen können cmap="cmap_name"
. Es gibt eine Referenzseite mit Farbkarten, die zeigen, wie die einzelnen Karten aussehen. Beachten Sie auch, dass Sie eine Farbkarte umkehren können, indem Sie sie einfach als aufrufen cmap_name_r
. Also entweder
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
# or
plt.scatter(x, y, c=t, cmap="cmap_name_r")
wird funktionieren. Beispiele sind "jet_r"
oder cm.plasma_r
. Hier ist ein Beispiel mit der neuen 1.5 colormap viridis:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()
Farbleisten
Sie können eine Farbleiste hinzufügen, indem Sie verwenden
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Beachten Sie , dass das Hinzufügen einer Farbleiste etwas komplizierter sein kann , wenn Sie explizit Abbildungen und Nebenhandlungen verwenden (z. B. fig, ax = plt.subplots()
oder ax = fig.add_subplot(111)
). Gute Beispiele finden Sie hier für eine einzelne Untergrund-Farbleiste und hier für 2 Unterzeichnungen 1 Farbleiste .
plt.colorbar()
Befehl können Sie eine Legende für die Farben abrufen.cm.colormap_name
undcm.cmapname
keine tatsächlichen Variablen inmatplotlib.cm
; Es ist nur Pseudocode fürcm.jet
odercm.veridis_r
usw.cmap
oderc
Liste einer bereits gezeichneten Kurve zu ändern ?Um die Antwort von wflynny oben zu ergänzen, finden Sie die verfügbaren Farbkarten hier
Beispiel:
oder alternativ,
quelle
Unterzeichnung Farbleiste
Bei Nebenplots mit Streuung können Sie einen Farbbalken auf Ihre Achsen übertragen, indem Sie mit Hilfe einer Sekundärfigur das "Mapping" erstellen und es dann Ihrem ursprünglichen Plot hinzufügen.
Als Fortsetzung des obigen Beispiels:
Beachten Sie, dass Sie auch eine sekundäre Zahl ausgeben, die Sie ignorieren können.
quelle