matplotlib——南丁格尔玫瑰

南丁格尔玫瑰图(Nightingale Rose Chart),是一种特殊形式的柱状图,它以南丁格尔(Florence Nightingale)命名,她在1858年首次使用这种图表来展示战争期间士兵死亡原因的数据。

它将数据绘制在极坐标系中,而不是传统的笛卡尔坐标系中。图中的柱形通过角度(对应极坐标的角度变量 θ)分布在圆周上,高度表示某一变量的数值。它适合展示周期性、环状或者分类数据。

这里通过"3.2.5 diamonds数据集",使用matplotlib绘制极坐标柱状图,直观展示"切工"、"颜色"、"净度"和"总深度百分比"各分类的数据分布情况。

python 复制代码
# 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教程:详细目录

相关推荐
王小王-1231 小时前
基于Python的车联网数据聚合与可视化分析平台设计与实现
python·车联网·新能源汽车·车联网聚合分析
叫我:松哥2 小时前
基于Flask框架的校园二手书籍交易平台,注重校园场景的特殊需求,通过学号认证保障用户真实性
后端·python·sqlite·flask·bootstrap
namexingyun2 小时前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
通信仿真爱好者2 小时前
第【17】期--考虑硬件损伤和不完美CSI的RIS-MISO系统的深度强化学习联合优化-python完整代码+参考文献
python·深度强化学习·ris
装不满的克莱因瓶2 小时前
自然语言处理常见任务——从文本理解到生成式AI的完整任务体系
人工智能·pytorch·python·深度学习·ai·自然语言处理
ptc学习者2 小时前
python 中描述符@property property 大概的样子
开发语言·python
zmzb01032 小时前
Python课后习题训练记录Day129
开发语言·python
秋93 小时前
Python工程师面试常问提问和回答(AI工程化方向 · 2026版)
人工智能·python·面试
炎武丶航3 小时前
LeNet-5深度学习详解:从手写数字识别到代码实战
人工智能·python·深度学习·机器学习·ai·cnn·lenet
sitellla3 小时前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频