南丁格尔玫瑰图(Nightingale Rose Chart),是一种特殊形式的柱状图,它以南丁格尔(Florence Nightingale)命名,她在1858年首次使用这种图表来展示战争期间士兵死亡原因的数据。
它将数据绘制在极坐标系中,而不是传统的笛卡尔坐标系中。图中的柱形通过角度(对应极坐标的角度变量 θ)分布在圆周上,高度表示某一变量的数值。它适合展示周期性、环状或者分类数据。
这里通过“3.2.5 diamonds数据集”,使用matplotlib绘制极坐标柱状图,直观展示“切工”、“颜色”、“净度”和“总深度百分比”各分类的数据分布情况。
# 11.1_01
# -*- encoding: utf-8 -*-
'''
未经过允许禁止转载!
@Author : 公众号: pythonic生物人
@Desc : 11.1 极坐标柱状图
'''# 绘制极坐标柱状图——核心代码
for idx, ax in enumerate(axes):values = values_list[idx]angles = np.linspace(0, 2 * np.pi, len(values), endpoint=False)colors = cmap(np.linspace(0, 1, len(values)))bars = ax.bar(angles,values,color=colors,alpha=0.8,align='center',edgecolor='black')# 添加标签到极坐标外侧ax.set_xticks(angles)ax.set_xticklabels(values.index, fontsize=10)ax.set_yticks([]) # 隐藏极径刻度ax.set_title(f'{categories[idx]}', fontsize=12, loc='center', pad=20)# 添加每根柱的数值标注for bar, value in zip(bars, values):ax.text(bar.get_x() + bar.get_width() / 2,bar.get_height() + 1,f'{value}',ha='center',va='bottom',fontsize=10)plt.show()
推荐阅读:
👉Python matplotlib保姆级教程
👉保姆级matplotlib教程—详细目录
👉Python seaborn保姆级教程
👉保姆级seaborn教程:详细目录