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.