2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Les cartes thermiques sont un moyen efficace d'afficher des données matricielles via un mappage de couleurs. Matplotlibimshow
Les fonctions sont un outil puissant pour créer diverses cartes thermiques. Avant de commencer l’exemple, comprenons d’abord les principaux paramètres :
Tout d'abord, dessinons une carte thermique de base pour montrer la distribution globale de l'ensemble de données :
- 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()
Dans cet exemple simple, nous utilisonsviridis
palette de couleurs etnearest
méthode d'interpolation.
Matplotlib prend en charge une variété de cartes de couleurs intégrées, mais nous pouvons également personnaliser la carte de couleurs pour rendre la carte thermique plus personnalisée. Voici un exemple de carte de couleurs personnalisée :
- 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'ajout d'annotations à une carte thermique peut transmettre plus clairement la signification des données.on peut utiliserannotate
La fonction étiquette les valeurs sur la carte thermique :
- 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 prend également en charge le dessin de cartes thermiques de différentes formes, telles que des points circulaires ou elliptiques. Voici un exemple:
- 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()
Parfois, nous souhaitons mettre en évidence certains blocs dans une matrice pour mettre en évidence les informations clés.Nous pouvons le faire en utilisantimshow
deextent
Paramètres pour y parvenir :
- 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()
Dans certains cas, nous pouvons avoir besoin d'afficher plusieurs cartes thermiques dans le même graphique pour comparer ou présenter différents aspects des données.Cela peut être fait via Matplotlibsubplot
accomplir:
- 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 prend également en charge le dessin de cartes thermiques 3D, ce qui est très utile pour afficher des données avec une structure tridimensionnelle :
- 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 permet une exploration plus approfondie des paramètres avancés des cartes de couleurs et des barres de couleurs pour répondre à des besoins plus complexes. Voici un exemple illustrant la personnalisation d'une barre de couleurs et l'ajout d'étiquettes de barre de couleurs :
- 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()
Parfois, nous souhaitons afficher les modifications des données de manière dynamique, ce qui peut être fait en utilisant MatplotlibFuncAnimation
accomplir. Voici un exemple simple de carte thermique dynamique :
- 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()
Pour rendre la carte thermique plus interactive, vous pouvez utiliser Matplotlibimshow
combinermplcursors
La bibliothèque implémente l'affichage par survol des points de données :
- 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()
De cette façon, lorsque la souris survole les points de données de la carte thermique, les valeurs correspondantes seront affichées.
Parfois, afin de montrer plus clairement les différences entre les données, nous devrons peut-être normaliser la plage de données.Cela peut être fait viaNormalize
classe à implémenter :
- 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()
Enfin, nous pouvons exporter la carte thermique dessinée sous forme de fichier image via Matplotlib pour une utilisation ou un partage ultérieur :
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='coolwarm', interpolation='nearest')
- plt.colorbar(im)
-
- plt.title('导出热力图')
- plt.savefig('heatmap.png')
Ce qui précède est une série d'exemples et de techniques pour dessiner différents types de cartes thermiques froides avec Matplotlib. Grâce à ces exemples, nous avons acquis une compréhension approfondie de la puissance de Matplotlib et de la manière de créer des cartes thermiques colorées, interactives et avancées en ajustant les paramètres et en appliquant différentes techniques. Espérons que ces exemples vous ont fourni des conseils utiles pour votre travail en visualisation de données.
Grâce à l'introduction de cet article, nous avons une discussion approfondie des différentes techniques et réglages de paramètres de la bibliothèque Matplotlib lors du dessin de différents types de cartes thermiques froides. Voici les points clés que nous avons appris :
Notions de base:Nous avons découvert les paramètres de base pour dessiner des cartes thermiques dans Matplotlib, tels quedata
、cmap
、interpolation
、vmin
etvmax
, ces paramètres ont un impact important sur l’apparence et la lisibilité de la carte thermique.
Types de cartes thermiques courants :À travers des exemples, nous avons discuté des méthodes de dessin de types de cartes thermiques courants tels que les cartes thermiques de base, les cartes thermiques personnalisées, les annotations, les cartes thermiques de différentes formes, les cartes thermiques en bloc, les cartes thermiques multi-sous-cartes, les cartes thermiques 3D, etc.
réglages avancés:Nous avons appris à effectuer des paramètres avancés de cartographie des couleurs et de barres de couleurs, et à rendre les cartes thermiques plus personnalisées et plus lisibles en ajustant les étiquettes des barres de couleurs, l'affichage dynamique, l'interactivité, les plages de données standardisées et d'autres techniques.
Conseils pratiques :Nous avons introduit quelques techniques pratiques, telles que l'ajout de barres de couleurs, l'exportation de cartes thermiques sous forme de fichiers image, l'affichage interactif de cartes thermiques, etc., pour améliorer la convivialité et le partage des graphiques.