Come plottare un numpy array 2d a colori

ALTRO, APPUNTI, ESEMPI

Nota: Questo post fa parte della categoria ESEMPI.

Di seguito un metodo molto semplice per stampare una matrice 2d a colori con python e matplotlib. Per eseguire l’esempio saràsufficente aprire una sessione jupyter ed eseguire il codice nell’ambiente:

import numpy as np 
import matplotlib.pyplot as plt 
H = np.array([[10, 12, 13, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) 
my_dpi = 96
fig= plt.figure(figsize=(800/my_dpi, 800/my_dpi), dpi=my_dpi)

ax = fig.add_subplot(111) 
ax.set_title('colorMap')

colormap = plt.cm.get_cmap('viridis') # 'plasma' or 'viridis'
plt.imshow(H,colormap) 
sm = plt.cm.ScalarMappable(cmap=colormap)
sm.set_clim(vmin=0, vmax=100)
plt.colorbar(sm)
plt.show()

il risultato sarà qualcosa del genere:

matrice 2d a colori

nel caso in cui voleste fare la stessa cosa senza però utilizzare un ambiente interattivo come jupyter potete fare qualcosa del genere:

import numpy as np 
import matplotlib.pyplot as plt 
from PIL import Image


H = np.array([[10, 12, 13, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) 
my_dpi = 96
fig= plt.figure(figsize=(800/my_dpi, 800/my_dpi), dpi=my_dpi)

ax = fig.add_subplot(111) 
ax.set_title('colorMap')

colormap = plt.cm.get_cmap('viridis') # 'plasma' or 'viridis'
plt.imshow(H,colormap) 
sm = plt.cm.ScalarMappable(cmap=colormap)
sm.set_clim(vmin=0, vmax=100)
plt.colorbar(sm)
plt.savefig("matrix2d.jpg")

im = Image.open("matrix2d.jpg")
im.show()

in tal caso sarà sufficiente creare un script python ad esempio test.py, copiare il codice ed eseguire da linea di comando :

python test.py

 

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments