Belajar melukis dendrogram dan carta radar dalam Python dalam masa lima minit

WBOY
Lepaskan: 2023-09-27 12:48:30
asal
1545 orang telah melayarinya

Belajar melukis dendrogram dan carta radar dalam Python dalam masa lima minit

Belajar melukis dendrogram dan carta radar dengan Python dalam masa lima minit

Dalam visualisasi data, dendrogram dan carta radar ialah dua bentuk carta yang biasa digunakan. Peta pokok digunakan untuk menunjukkan struktur hierarki, manakala carta radar digunakan untuk membandingkan data merentas berbilang dimensi. Artikel ini akan memperkenalkan cara melukis dua carta ini menggunakan Python dan memberikan contoh kod khusus.

1. Melukis dendrogram

Terdapat berbilang perpustakaan dalam Python yang boleh digunakan untuk melukis dendrogram, seperti matplotlib dan graphviz. Berikut menggunakan perpustakaan matplotlib sebagai contoh untuk menunjukkan cara melukis gambar rajah pokok.

Pertama, kita perlu memasang perpustakaan matplotlib. Anda boleh menggunakan arahan pip untuk memasang:

pip install matplotlib
Salin selepas log masuk

Selepas pemasangan selesai, anda boleh menggunakan kod berikut untuk melukis gambar rajah pokok mudah:

import matplotlib.pyplot as plt

# 创建数据
data = {'A': ['B', 'C'],
        'B': ['D', 'E'],
        'C': ['F', 'G']}

# 递归函数,遍历数据字典,并绘制树状图
def plot_tree(data, parent=None, depth=0):
    for node in data.get(parent, []):
        plt.plot([parent, node], [depth, depth + 1], 'bo-')  # 绘制节点连接线
        plot_tree(data, node, depth + 1)  # 递归调用,遍历子节点

# 绘制树状图
plot_tree(data)
plt.show()
Salin selepas log masuk

Jalankan kod di atas untuk memaparkan gambar rajah pokok ringkas pada skrin, di mana A ialah Nod akar, B dan C ialah nod anak, dan D, E, F dan G ialah nod daun.

2. Melukis Carta Radar

Melukis carta radar memerlukan penggunaan sub-pustaka lain perpustakaan matplotlib, mpl_toolkits.mplot3d. Yang berikut menggunakan perpustakaan mpl_toolkits sebagai contoh untuk menunjukkan cara melukis carta radar.

Pertama, kita perlu memasang perpustakaan mpl_toolkits. Anda boleh menggunakan arahan pip untuk memasang:

pip install mpl_toolkits
Salin selepas log masuk

Selepas pemasangan selesai, anda boleh menggunakan kod berikut untuk melukis carta radar mudah:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# 创建数据
labels = ['A', 'B', 'C', 'D', 'E']
values = np.random.randint(1, 10, len(labels))

# 绘制雷达图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(np.cos(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
        np.sin(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
        np.zeros(len(labels)), 'k-')  # 绘制雷达图主轴
ax.fill_between(np.cos(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
                np.sin(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
                np.zeros(len(labels)), alpha=0.25)  # 绘制雷达图背景

ax.plot(np.cos(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
        np.sin(np.linspace(0, 2*np.pi, len(labels)+1))[:-1],
        values, 'bo-')  # 绘制雷达图数据点

# 设置坐标轴标签
ax.set_xticks(np.cos(np.linspace(0, 2*np.pi, len(labels)+1))[:-1])
ax.set_yticks(np.sin(np.linspace(0, 2*np.pi, len(labels)+1))[:-1])
ax.set_xticklabels(labels)
ax.set_yticklabels([])

plt.show()
Salin selepas log masuk

Jalankan kod di atas untuk memaparkan carta radar ringkas pada skrin, di mana A , B, C , D, dan E ialah dimensi yang berbeza, dan nilai ialah titik data bagi dimensi yang sepadan.

Ringkasan

Melalui pengenalan artikel ini, kami belajar cara menggunakan Python untuk melukis dendrogram dan carta radar. Peta pokok digunakan untuk menunjukkan struktur hierarki, manakala carta radar digunakan untuk membandingkan data merentas berbilang dimensi. Melalui fungsi dan kaedah dalam perpustakaan matplotlib dan perpustakaan mpl_toolkits, kami boleh melukis pelbagai rajah pokok dan carta radar dengan mudah untuk mencapai paparan visual data.

Atas ialah kandungan terperinci Belajar melukis dendrogram dan carta radar dalam Python dalam masa lima minit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!