le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Le mappe di calore sono un modo efficace per visualizzare i dati della matrice attraverso la mappatura dei colori. Matplotlibimshow
Le funzioni sono uno strumento potente per creare varie mappe di calore. Prima di iniziare l’esempio, comprendiamo innanzitutto i parametri principali:
Innanzitutto, disegniamo una mappa termica di base per mostrare la distribuzione complessiva del set di dati:
- import matplotlib.pyplot as plt
- import numpy as np
-
- data = np.random.random((10, 10)) # 生成随机矩阵数据
-
- plt.imshow(data, cmap='viridis', interpolation='nearest')
- plt.colorbar()
-
- plt.title('基本热力图')
- plt.show()
In questo semplice esempio, usiamoviridis
mappa colori enearest
metodo di interpolazione.
Matplotlib supporta una varietà di mappe colore integrate, ma possiamo anche personalizzare la mappa colore per rendere la mappa termica più personalizzata. Ecco un esempio di mappa colori personalizzata:
- custom_cmap = plt.cm.get_cmap('coolwarm', 5) # 从'coolwarm'中选择5个颜色
-
- plt.imshow(data, cmap=custom_cmap, interpolation='bilinear')
- plt.colorbar()
-
- plt.title('自定义颜色映射')
- plt.show()
L'aggiunta di annotazioni a una mappa termica può trasmettere più chiaramente il significato dei dati.possiamo usareannotate
La funzione etichetta i valori sulla mappa termica:
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='plasma', interpolation='bicubic')
-
- for i in range(len(data)):
- for j in range(len(data[i])):
- text = ax.text(j, i, f'{data[i, j]:.2f}', ha='center', va='center', color='w')
-
- plt.colorbar(im)
-
- plt.title('带有注释的热力图')
- plt.show()
Matplotlib supporta anche il disegno di mappe termiche di forme diverse, come punti circolari o ellittici. Ecco un esempio:
- from matplotlib.patches import Ellipse
-
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='YlGnBu', interpolation='bicubic')
-
- # 添加椭圆形状的点
- for i in range(len(data)):
- for j in range(len(data[i])):
- ellipse = Ellipse((j, i), 0.8, 0.8, edgecolor='w', facecolor='none')
- ax.add_patch(ellipse)
-
- plt.colorbar(im)
-
- plt.title('不同形状的热力图')
- plt.show()
A volte vogliamo evidenziare determinati blocchi in una matrice per rendere più evidenti le informazioni chiave.Possiamo farlo utilizzandoimshow
Diextent
Parametri per raggiungere questo obiettivo:
- fig, ax = plt.subplots()
- block_data = np.random.random((5, 5)) # 生成块状数据
-
- ax.imshow(block_data, cmap='Reds', interpolation='nearest', extent=[2, 7, 2, 7])
- plt.colorbar()
-
- plt.title('分块热力图')
- plt.show()
In alcuni casi, potrebbe essere necessario visualizzare più mappe termiche nello stesso grafico per confrontare o presentare diversi aspetti dei dati.Questo può essere fatto tramite Matplotlibsubplot
compiere:
- fig, axs = plt.subplots(1, 2, figsize=(10, 4)) # 一行两列的子图
-
- # 第一个子图
- axs[0].imshow(data, cmap='Blues', interpolation='nearest')
- axs[0].set_title('子图1')
-
- # 第二个子图
- axs[1].imshow(data.T, cmap='Oranges', interpolation='bicubic') # 转置数据以展示不同热力图
- axs[1].set_title('子图2')
-
- plt.show()
Matplotlib supporta anche il disegno di mappe termiche 3D, molto utile per visualizzare i dati con struttura tridimensionale:
- from mpl_toolkits.mplot3d import Axes3D
-
- fig = plt.figure(figsize=(8, 6))
- ax = fig.add_subplot(111, projection='3d')
-
- x, y = np.meshgrid(range(len(data)), range(len(data)))
- ax.plot_surface(x, y, data, cmap='viridis')
-
- ax.set_title('3D热力图')
- plt.show()
Matplotlib consente un'ulteriore esplorazione delle impostazioni avanzate di mappe di colore e barre di colore per soddisfare esigenze più complesse. Ecco un esempio che dimostra la personalizzazione di una barra dei colori e l'aggiunta di etichette alla barra dei colori:
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='coolwarm', interpolation='nearest')
-
- # 自定义颜色栏
- cbar = plt.colorbar(im, ax=ax, fraction=0.046, pad=0.04)
- cbar.set_label('数据值', rotation=270, labelpad=15)
-
- plt.title('高级颜色栏设置')
- plt.show()
A volte vogliamo visualizzare le modifiche ai dati in modo dinamico, cosa che può essere eseguita utilizzando MatplotlibFuncAnimation
compiere. Quello che segue è un semplice esempio di mappa termica dinamica:
- from matplotlib.animation import FuncAnimation
-
- fig, ax = plt.subplots()
- data_frames = [np.random.random((10, 10)) for _ in range(10)] # 生成多帧数据
-
- def update(frame):
- ax.clear()
- im = ax.imshow(data_frames[frame], cmap='Blues', interpolation='nearest')
- plt.title(f'动态热力图 - 帧 {frame}')
-
- ani = FuncAnimation(fig, update, frames=len(data_frames), interval=500, repeat=False)
- plt.show()
Per rendere la mappa termica più interattiva, puoi utilizzare Matplotlibimshow
combinaremplcursors
La libreria implementa la visualizzazione al passaggio del mouse dei punti dati:
- import mplcursors
-
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='Greens', interpolation='nearest')
-
- mplcursors.cursor(hover=True).connect("add", lambda sel: sel.annotation.set_text(f'{sel.artist.get_array()[sel.target.index]:.2f}'))
-
- plt.title('交互式热力图')
- plt.show()
In questo modo, quando il mouse passa sopra i punti dati della mappa termica, verranno visualizzati i valori corrispondenti.
A volte, per mostrare più chiaramente le differenze nei dati, potrebbe essere necessario normalizzare l'intervallo di dati.Questo può essere fatto tramiteNormalize
classe da implementare:
- from matplotlib.colors import Normalize
-
- normalized_data = Normalize()(data) # 将数据标准化
-
- fig, ax = plt.subplots()
- im = ax.imshow(normalized_data, cmap='YlGnBu', interpolation='bicubic')
- plt.colorbar(im, label='标准化值范围')
-
- plt.title('标准化热力图')
- plt.show()
Infine, possiamo esportare la mappa termica disegnata come file immagine tramite Matplotlib per ulteriore utilizzo o condivisione:
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='coolwarm', interpolation='nearest')
- plt.colorbar(im)
-
- plt.title('导出热力图')
- plt.savefig('heatmap.png')
Quanto sopra è una serie di esempi e tecniche per disegnare diversi tipi di fantastiche mappe di calore con Matplotlib. Attraverso questi esempi, abbiamo acquisito una comprensione approfondita della potenza di Matplotlib e di come creare mappe di calore colorate, interattive e avanzate regolando i parametri e applicando tecniche diverse. Speriamo che questi esempi abbiano fornito indicazioni utili per il tuo lavoro nella visualizzazione dei dati.
Attraverso l'introduzione di questo articolo, abbiamo una discussione approfondita delle varie tecniche e impostazioni dei parametri della libreria Matplotlib durante il disegno di diversi tipi di mappe di calore interessanti. Ecco i punti chiave che abbiamo imparato:
Conoscenza di base:Abbiamo appreso i parametri di base per disegnare mappe di calore in Matplotlib, come ad esempiodata
、cmap
、interpolation
、vmin
Evmax
, questi parametri hanno un impatto importante sull'aspetto e sulla leggibilità della mappa termica.
Tipi comuni di mappe di calore:Attraverso esempi, abbiamo discusso i metodi di disegno dei tipi comuni di mappe di calore come mappe di calore di base, mappatura dei colori personalizzata, annotazioni, mappe di calore di forme diverse, mappe di calore a blocchi, mappe di calore multi-sottomappa, mappe di calore 3D, ecc.
impostazioni avanzate:Abbiamo imparato come eseguire la mappatura dei colori avanzata e le impostazioni della barra dei colori e come rendere le mappe di calore più personalizzate e leggibili regolando le etichette delle barre dei colori, la visualizzazione dinamica, l'interattività, gli intervalli di dati standardizzati e altre tecniche.
Consigli pratici:Abbiamo introdotto alcune tecniche pratiche, come l'aggiunta di barre di colore, l'esportazione delle mappe di calore come file immagine, la visualizzazione interattiva delle mappe di calore, ecc., per migliorare l'usabilità e la condivisibilità dei grafici.