informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Peta panas adalah cara efektif untuk menampilkan data matriks melalui pemetaan warna. Matplotlibimshow
Fungsi adalah alat yang ampuh untuk membuat berbagai peta panas. Sebelum memulai contoh, mari kita pahami dulu parameter utamanya:
Pertama, mari kita menggambar peta panas dasar untuk menunjukkan distribusi kumpulan data secara keseluruhan:
- 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()
Dalam contoh sederhana ini, kami menggunakanviridis
peta warna dannearest
metode interpolasi.
Matplotlib mendukung berbagai peta warna bawaan, namun kami juga dapat menyesuaikan peta warna untuk membuat peta panas lebih dipersonalisasi. Berikut adalah contoh peta warna khusus:
- custom_cmap = plt.cm.get_cmap('coolwarm', 5) # 从'coolwarm'中选择5个颜色
-
- plt.imshow(data, cmap=custom_cmap, interpolation='bilinear')
- plt.colorbar()
-
- plt.title('自定义颜色映射')
- plt.show()
Menambahkan anotasi ke peta panas dapat menyampaikan makna data dengan lebih jelas.kita bisa gunakanannotate
Fungsi memberi label nilai pada peta panas:
- 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 juga mendukung penggambaran peta panas dengan berbagai bentuk, seperti titik melingkar atau elips. Berikut ini contohnya:
- 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()
Terkadang kita ingin menyorot blok tertentu dalam matriks untuk membuat informasi penting lebih menonjol.Kita bisa melakukan ini dengan menggunakanimshow
dariextent
Parameter untuk mencapai hal ini:
- 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()
Dalam beberapa kasus, kita mungkin perlu menampilkan beberapa peta panas dalam grafik yang sama untuk membandingkan atau menyajikan aspek data yang berbeda.Ini dapat dilakukan melalui Matplotlibsubplot
menyelesaikan:
- 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 juga mendukung menggambar peta panas 3D, yang sangat berguna untuk menampilkan data dengan struktur tiga dimensi:
- 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 memungkinkan eksplorasi lebih lanjut pengaturan lanjutan peta warna dan bilah warna untuk memenuhi kebutuhan yang lebih kompleks. Berikut adalah contoh yang menunjukkan penyesuaian bilah warna dan menambahkan label bilah warna:
- 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()
Terkadang kita ingin menampilkan perubahan data secara dinamis, yang dapat dilakukan dengan menggunakan MatplotlibFuncAnimation
menyelesaikan. Berikut ini adalah contoh peta panas dinamis sederhana:
- 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()
Untuk membuat peta panas lebih interaktif, Anda dapat menggunakan Matplotlibimshow
menggabungkanmplcursors
Perpustakaan mengimplementasikan tampilan titik data:
- 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()
Dengan cara ini, saat mouse mengarahkan mouse ke titik data peta panas, nilai yang sesuai akan ditampilkan.
Terkadang, untuk menunjukkan perbedaan data dengan lebih jelas, kita mungkin perlu menormalkan rentang data.Ini dapat dilakukan melaluiNormalize
kelas untuk diimplementasikan:
- 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()
Terakhir, kita dapat mengekspor peta panas yang digambar sebagai file gambar melalui Matplotlib untuk digunakan atau dibagikan lebih lanjut:
- fig, ax = plt.subplots()
- im = ax.imshow(data, cmap='coolwarm', interpolation='nearest')
- plt.colorbar(im)
-
- plt.title('导出热力图')
- plt.savefig('heatmap.png')
Di atas adalah serangkaian contoh dan teknik menggambar berbagai jenis peta panas dingin dengan Matplotlib. Melalui contoh-contoh ini, kami memperoleh pemahaman mendalam tentang kekuatan Matplotlib dan cara membuat peta panas yang penuh warna, interaktif, dan canggih dengan menyesuaikan parameter dan menerapkan teknik yang berbeda. Semoga contoh-contoh ini memberikan panduan yang berguna untuk pekerjaan Anda dalam visualisasi data.
Melalui pendahuluan artikel ini, kami melakukan diskusi mendalam tentang berbagai teknik dan pengaturan parameter perpustakaan Matplotlib saat menggambar berbagai jenis peta panas dingin. Berikut adalah poin-poin penting yang kami pelajari:
Pengetahuan dasar:Kami mempelajari tentang parameter dasar untuk menggambar peta panas di Matplotlib, sepertidata
、cmap
、interpolation
、vmin
Danvmax
, parameter ini mempunyai dampak penting pada tampilan dan keterbacaan peta panas.
Jenis peta panas yang umum:Melalui contoh, kita membahas metode menggambar jenis peta panas umum seperti peta panas dasar, pemetaan warna khusus, anotasi, peta panas berbagai bentuk, peta panas blok, peta panas multi-subpeta, peta panas 3D, dll.
pengaturan lanjutan:Kami mempelajari cara melakukan pemetaan warna tingkat lanjut dan pengaturan bilah warna, serta cara membuat peta panas lebih dipersonalisasi dan mudah dibaca dengan menyesuaikan label bilah warna, tampilan dinamis, interaktivitas, rentang data standar, dan teknik lainnya.
Kiat praktis:Kami memperkenalkan beberapa teknik praktis, seperti menambahkan bilah warna, mengekspor peta panas sebagai file gambar, tampilan interaktif peta panas, dll., untuk meningkatkan kegunaan dan kemudahan berbagi bagan.