Mappe a colori in Matplotlib | Quando i grafici incontrano Matplotlib

Contenuti

Le tue mappe dei colori

Non sono interessato a tutte le mappe a colori fornite? O hai bisogno di altre fantasiose mappe a colori? Se è così, devi leggere questo post fino alla fine. Ti guiderò attraverso la personalizzazione e la creazione delle tue mappe dei colori.

Ma prima di personalizzarlo, Ti mostrerò un esempio di utilizzo delle mappe dei colori. ho usato il ‘RdYlBu_r‘Mappe a colori per visualizzare i miei dati.

1repkpehdtxe5fnu_hqcdwq-9117981

Modifichiamo le tue mappe dei colori.

Primo, dobbiamo creare dati simulati che verranno visualizzati, usando questo codice

# importa alcune librerie /  moduli
importa numpy come np
importa matplotlib.pyplot come plt# creare dati fittizi
data = np.random.random([100, 100]) * 10

La variabile dati è un array composto da 100 X 100 numeri casuali da 0 al 10. Puoi verificarlo scrivendo questo codice.

1raeoqngyzq9yat_wcpwtsw-5346265

Successivamente, mostreremo i dati simulati con le mappe di colori predefinite usando il semplice codice qui sotto.

plt.figure(figsize=(7, 6))plt.pcolormesh(dati)
plt.colorbar()

Il codice ti mostrerà una figura come questa.

1tfqp4c5biki3t9pkbgbyzg-4916891

Come ho detto precedentemente, se non hai definito le mappe dei colori che hai usato, otterrai le mappe di colori predefinite, chiamato ‘viridis'.

Prossimo, Cambierò le mappe dei colori di ‘viridis'un’ inferno "mappe a colori con questo codice"-

plt.pcolormesh(dati, cmap='inferno')

Otterrai il risultato così. Viridis

1epy4iobkukeblowmmffuxw-3368622


Modifica le mappe dei colori

Ora, per modificare le mappe dei colori, è necessario importare queste seguenti sotto-librerie in Matplotlib.

da matplotlib import cm
da matplotlib.colors import ListedColormap,Mappa colore segmentata lineare

Per modificare il numero della classe di colore nelle mappe dei colori, puoi usare questo codice

nuovo_inferno = cm.get_cmap('inferno', 5)# visualizza con le new_inferno colormaps
plt.pcolormesh(dati, cmap = nuovo_inferno)
plt.colorbar()

e otterrai un risultato come questo

1n-yfpe64xds4tcvf3v06q-4397422

La prossima cosa è modificare il colore dell'intervallo in una mappa di colori. Ti darò un esempio nelle mappe a colori 'hsv'. Devi capire la gamma di colori con questa figura.

1knljmcykkacavlqwj-nqla-4189041

Se vogliamo usare solo il colore verde (circa 0.3) al colore blu (0.7), possiamo usare il seguente codice.

# hsv modificato in 256 classe di colore
hsv_modified = cm.get_cmap('hsv', 256)# creare nuove mappe di colori hsv nell'intervallo di 0.3 (verde) a 0.7 (blu)
newcmp = ListedColormap(hsv_modified(ad esempio linspace(0.3, 0.7, 256)))# mostra la figura
plt.figure(figsize=(7, 6))
plt.pcolormesh(dati, cmap = nuovo cmp)
plt.colorbar()

Ti darà una figura come questa

19ntdb0aolk9bhlbwmqs2cw-9548003

Creare le tue mappe dei colori

Per creare le tue mappe dei colori, ci sono almeno due metodi. Primo, puoi combinare due mappe di colori sequenziali in Matplotlib. Al secondo posto, puoi selezionare e abbinare il tuo colore preferito in RGB per creare mappe di colori.

Ti daremo una dimostrazione della combinazione di due mappe di colori sequenziali per creare una nuova mappa di colori. Vogliamo unire ‘Arance’ e "Blu".

1rlilduduamx11de4uxoumg-4097986

Puoi leggere attentamente questo codice.

# stabilisci le mappe dei colori in alto e in basso
top = cm.get_cmap('Arance_r', 128) # r significa versione invertita
fondo = cm.get_cmap('Blues', 128)# combinare tutto
nuovi colori = np.vstack((superiore(ad esempio linspace(0, 1, 128)),
                       parte inferiore(ad esempio linspace(0, 1, 128))))# crea una nuova mappa dei colori con un nome di OrangeBlue
orange_blue = ListedColormap(nuovi colori, nome="ArancioneBlu")

Se visualizzi i dati simulati utilizzando le mappe a colori "OrangeBlue", otterrai una cifra come questa.

1wncg6ygkxwhaztqtu14hww-1044333

La prossima cosa è creare una mappa dei colori da due diversi colori che ti piacciono. Per questo caso, Proverò a crearlo dal colore giallo e rosso come mostrato nell'immagine successiva.

1virwxzf6rw2olkbdd0wltg-1192361

Primo, devi creare mappe gialle

# creare mappe di colore gialloN = 256giallo = np.ones((n, 4))giallo[:, 0] = ad es. linspace(255/256, 1, n) # R = 255
giallo[:, 1] = ad es. linspace(232/256, 1, n) # G = 232
giallo[:, 2] = ad es. linspace(11/256, 1, n)  # B = 11yellow_cmp = ListedColormap(giallo)

e mappe rosse

rosso = np.ones((n, 4))rosso[:, 0] = ad es. linspace(255/256, 1, n)
rosso[:, 1] = ad es. linspace(0/256, 1, n)
rosso[:, 2] = ad es. linspace(65/256, 1, n)red_cmp = ListedColormap(rosso)

La visualizzazione della mappa gialla e rossa che hai creato è mostrata nell'immagine successiva

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.