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
