使用Python绘制南丁格尔图(玫瑰图)
- 南丁格尔图
- 效果
- 代码
南丁格尔图
南丁格尔图(Nightingale Rose Chart),也被称为玫瑰图或极区图,是一种特殊的圆形统计图,用于显示多个类别的数据。它是由弗洛伦斯·南丁格尔(Florence Nightingale)发明的,最初用于展示英国士兵在克里米亚战争期间的死亡原因。**南丁格尔图通过不同大小的扇形区显示数据,其中每个扇形区的角度相同,但半径不同,表示数据的大小。**它与传统的饼图不同,饼图的扇形区是通过角度的大小来表示数据的。
效果
代码
import numpy as np
import matplotlib.pyplot as plt
# 示例数据
categories = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
values = [4, 7, 1, 8, 5, 9, 6, 3]
# 计算角度
angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
values += values[:1] # 使得图形首尾相连
angles += angles[:1] # 使得图形首尾相连
# 绘制南丁格尔图
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))
ax.fill(angles, values, color='skyblue', alpha=0.25)
ax.plot(angles, values, color='blue', linewidth=2)
# 添加标签
ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)
# 添加标题
plt.title('Nightingale Rose Chart', size=20, color='blue')
# 显示图表
plt.show()