Ecco un esempio
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()
Qui stai impostando il colore in base all'indice t, che è solo un array di [1, 2, ..., 100].

Forse un esempio più facile da capire è quello leggermente più semplice
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()

Nota che l'array passato come cnon ha bisogno di avere un ordine o tipo particolare, cioè non ha bisogno di essere ordinato o numeri interi come in questi esempi. La routine di stampa ridimensionerà la mappa di colori in modo che i valori minimo / massimo ccorrispondano al fondo / all'inizio della mappa di colori.
Colormaps
Puoi cambiare la mappa dei colori aggiungendo
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
L'importazione matplotlib.cmè facoltativa in quanto puoi chiamare anche le mappe dei colori cmap="cmap_name". C'è una pagina di riferimento delle mappe dei colori che mostra l'aspetto di ciascuna. Sappi anche che puoi invertire una mappa di colori chiamandola semplicemente come cmap_name_r. Quindi neanche
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
funzionerà. Gli esempi sono "jet_r"o cm.plasma_r. Ecco un esempio con la nuova 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()

Colorbars
Puoi aggiungere una barra dei colori usando
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()

Nota che se stai usando figure e sottotrame esplicitamente (ad esempio fig, ax = plt.subplots()o ax = fig.add_subplot(111)), l'aggiunta di una barra dei colori può essere un po 'più complicata. Buoni esempi possono essere trovati qui per una singola barra dei colori della sottotrama e qui per 2 sottotrame 1 barra dei colori .
plt.colorbar()comando.