Imposta il colore per il grafico a dispersione in Matplotlib
Per impostare il colore dei marker in Matplotlib, impostiamo il parametro c
nel metodo matplotlib.pyplot.scatter()
.
Imposta il colore di un marker nel grafico a dispersione
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 1, 4, 7, 4, 3, 2]
plt.scatter(x, y, c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()
Produzione:
Qui, impostiamo il colore di tutti i marker nei grafici a dispersione sul rosso impostando c="red"
nel metodo scatter()
.
Se abbiamo due diversi set di dati, possiamo usare colori diversi per ogni set di dati utilizzando i diversi valori del parametro c
.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [2, 1, 4, 7, 4, 3, 2]
y2 = [4, 4, 5, 3, 8, 9, 6]
plt.scatter(x, y1, c="red")
plt.scatter(x, y2, c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()
Produzione:
Qui, il set di dati y1
è rappresentato nel grafico a dispersione dal colore rosso mentre il set di dati y2
è rappresentato nel grafico a dispersione dal colore verde.
Sarà difficile assegnare manualmente il colore ogni volta a ciascun set di dati se è presente un numero enorme di set di dati. In questi casi, possiamo usare colormap
per generare i colori per ogni set di dati.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset, color in zip(y, colors):
plt.scatter(x, dataset, color=color)
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Produzione:
Genera colori diversi per ogni riga nella matrice y
e traccia ogni riga con un colore diverso.
Invece di usare la mappa dei colori generata, possiamo anche specificare i colori da usare per i grafici a dispersione in una lista e passare l’lista al metodo itertools.cycle()
per creare un ciclatore di colori personalizzato. Per iterare sul colore, usiamo la funzione next()
.
import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
color_cycle = itertools.cycle(
["orange", "pink", "blue", "brown", "red", "grey", "yellow", "green"]
)
for row in y:
plt.scatter(x, row, color=next(color_cycle))
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Produzione:
Il metodo itertools.cycle()
creerà una lista ciclico di colori dal set di colori dato, e ogni riga viene tracciata nel grafico a dispersione selezionando un colore dall’lista ciclico.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Matplotlib Scatter Plot
- Traccia l'lista delle coordinate X, y in Matplotlib
- Crea la leggenda del diagramma a dispersione in Matplotlib
- Punti di dispersione dell'etichetta Matplotlib
- Traccia punti in Matplotlib