南丁格爾玫瑰圖(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教程:詳細目錄