Matplotlib: come colorare un grafico a dispersione in base al valore


Spesso potresti voler ombreggiare il colore dei punti in un grafico a dispersione matplotlib basato su una terza variabile. Fortunatamente, questo è facile da fare utilizzando la funzione matplotlib.pyplot.scatter() , che accetta la seguente sintassi:

matplotlib.pyplot.scatter(x, y, s=Nessuno, c=Nessuno, cmap=Nessuno)

Oro:

  • x: Tabella dei valori da utilizzare per le posizioni dell’asse x nel grafico.
  • y: array di valori da utilizzare per le posizioni dell’asse y nel grafico.
  • s: la dimensione del marcatore.
  • c: Tabella dei valori da utilizzare per i colori dei marcatori.
  • cmap: una mappa di colori da utilizzare nella stampa.

Puoi usare c per specificare una variabile da usare per i valori di colore e puoi usare cmap per specificare i colori effettivi da usare per i marcatori nella nuvola di punti.

Questo tutorial spiega diversi esempi di utilizzo pratico di questa funzione.

Esempio 1: punti del grafico a dispersione colorati per valore

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

        X Y Z
0 25 5 3
1 12 7 4
2 15 7 4
3 14 9 5
4 19 12 7
5 23 9 8
6 25 9 8
7 29 4 9

Il codice seguente mostra come creare una nuvola di punti utilizzando una tavolozza di colori grigi e utilizzando i valori della variabile z come sfumatura della tavolozza di colori:

 import matplotlib.pyplot as plt

#create scatterplot
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')

Colore del grafico a dispersione Matplotlib in base al valore

Per questo esempio particolare, scegliamo la tavolozza dei colori “grigio”, ma puoi trovare un elenco completo delle tavolozze dei colori disponibili da utilizzare nella documentazione delle tavolozze dei colori matplotlib .

Ad esempio, potremmo invece specificare “Verdi” come tavolozza dei colori:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ') 

Grafico a dispersione Matplotlib con cmap

Per impostazione predefinita, i marcatori con valori più grandi per l’argomento c sono ombreggiati più scuri, ma puoi invertire questa tendenza semplicemente aggiungendo _r al nome cmap:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ') 

Scala invertita della tavolozza dei colori Matplotlib

Esempio 2: punti colorati del grafico a dispersione per categoria

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

	X Y Z
0 25 5 A
1 12 7 A
2 15 7 B
3 14 9 B
4 19 12 B
5 23 9 C
6 25 9 C
7 29 4 C

Il codice seguente mostra come creare un grafico a dispersione utilizzando la variabile z per colorare i marcatori in base alla categoria:

 import matplotlib.pyplot as plt

groups = df. groupby ('z')
for name, group in groups:
    plt. plot (group.x, group.y, marker=' o ', linestyle='', markersize=12, label=name)

plt. legend ()

Grafico a dispersione Matplotlib colorato per categoria

Puoi trovare altri tutorial su Python qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *