news 2026/5/1 10:37:43

四、雷达图+玫瑰图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
四、雷达图+玫瑰图

1、雷达图

import matplotlib.pyplot as plt import numpy as np # ====================== 全局配置(中文显示) ====================== plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # -------------------------- 1. 准备数据 -------------------------- # 维度标签(比如产品的5个性能维度) categories = ['性能', '易用性', '稳定性', '扩展性', '性价比'] # 系列1数据(产品A) values_a = [85, 90, 80, 75, 95] # 系列2数据(产品B) values_b = [70, 85, 90, 88, 75] # 维度数量 n = len(categories) # 计算每个维度的角度(0到2π),并闭合雷达图(最后补第一个角度) angles = np.linspace(0, 2 * np.pi, n, endpoint=False).tolist() angles += angles[:1] # 闭合角度 # 闭合数据(最后补第一个值) values_a += values_a[:1] values_b += values_b[:1] categories += categories[:1] # 闭合标签 # -------------------------- 2. 创建雷达图 -------------------------- # 设置画布大小 fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(projection='polar')) # 绘制产品A的雷达图(填充半透明颜色) ax.plot(angles, values_a, 'o-', linewidth=2, label='产品A', color='#FF6B6B') ax.fill(angles, values_a, alpha=0.25, color='#FF6B6B') # 绘制产品B的雷达图 ax.plot(angles, values_b, 'o-', linewidth=2, label='产品B', color='#4ECDC4') ax.fill(angles, values_b, alpha=0.25, color='#4ECDC4') # -------------------------- 3. 样式美化 -------------------------- # 设置角度标签(对应维度) ax.set_xticks(angles[:-1]) # 去掉重复的最后一个角度 ax.set_xticklabels(categories[:-1], fontsize=12, fontfamily='SimHei') # 支持中文 # 设置径向刻度(数值范围) ax.set_ylim(0, 100) ax.set_yticks(np.arange(20, 101, 20)) ax.set_yticklabels([f'{x}分' for x in np.arange(20, 101, 20)], fontsize=10) # 隐藏径向标签的重叠 ax.set_rlabel_position(30) # 添加标题和图例 plt.title('产品多维度性能对比雷达图', fontsize=16, fontfamily='SimHei', pad=20) plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1.0), fontsize=12) # 优化布局 plt.tight_layout() # 显示/保存图片 plt.show() # plt.savefig('radar_chart.png', dpi=300, bbox_inches='tight')

2、玫瑰图

import matplotlib.pyplot as plt import numpy as np # ====================== 全局配置(中文显示) ====================== plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # -------------------------- 1. 准备数据 -------------------------- # 分类标签(比如不同月份的销售额) categories = ['1月', '2月', '3月', '4月', '5月', '6月'] # 对应数值 values = [58, 72, 65, 88, 78, 95] # 维度数量 n = len(categories) # 计算每个分类的角度(0到2π) angles = np.linspace(0, 2 * np.pi, n, endpoint=False) # 柱状图宽度(均匀分配) width = 2 * np.pi / n # -------------------------- 2. 创建玫瑰图 -------------------------- fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(projection='polar')) # 定义渐变颜色(可选) colors = plt.cm.Set3(np.linspace(0, 1, n)) # 绘制玫瑰图(核心:bar函数) bars = ax.bar( angles, # 每个柱子的角度 values, # 柱子高度(数值) width=width, # 柱子宽度 bottom=0, # 柱子底部起始位置 color=colors, # 柱子颜色 alpha=0.8, # 透明度 edgecolor='white',# 边框颜色 linewidth=1 # 边框宽度 ) # -------------------------- 3. 样式美化 -------------------------- # 设置角度标签 ax.set_xticks(angles) ax.set_xticklabels(categories, fontsize=12, fontfamily='SimHei') # 设置径向刻度(数值范围) ax.set_ylim(0, max(values) * 1.2) # 留出顶部空间 ax.set_yticks(np.arange(20, max(values)*1.2+1, 20)) ax.set_yticklabels([f'{x}万' for x in np.arange(20, max(values)*1.2+1, 20)], fontsize=10) # 调整极坐标起始角度(让第一个分类在顶部) ax.set_theta_zero_location('N') # 0度在正北方向 ax.set_theta_direction(-1) # 角度顺时针增加 # 为每个柱子添加数值标签 for bar, value in zip(bars, values): height = bar.get_height() ax.text( bar.get_x() + bar.get_width()/2, # 标签x坐标(柱子中心) height + 2, # 标签y坐标(柱子顶部+偏移) f'{value}万', # 标签文本 ha='center', va='bottom', # 对齐方式 fontsize=10, fontfamily='SimHei' ) # 添加标题 plt.title('上半年各月份销售额玫瑰图', fontsize=16, fontfamily='SimHei', pad=20) # 优化布局 plt.tight_layout() # 显示/保存图片 plt.show() # plt.savefig('rose_chart.png', dpi=300, bbox_inches='tight')

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:47:13

【GPU编程理论】内存一致性问题

在了解了GPU为何需要“原子操作”来强制秩序后,我们再来看CPU的强内存一致性(Strong Memory Consistency),你就能很好地理解它们是在不同层面上解决类似的问题。 简单来说,强内存一致性模型(通常指顺序一致性,Sequential Consistency, SC) 就是给程序员提供一个最符合直…

作者头像 李华
网站建设 2026/5/1 8:49:14

OEC-T改造手记(二):部署Syncthing,打造私有化无缝同步NAS

在上一篇为OEC-T打好基础后,我开始构建它的核心功能之一:无缝文件同步。我有一台专门负责BT下载的玩客云,而OEC-T则准备作为媒体库和播放中心。为了让下载好的影片自动同步到OEC-T,我选择了 Syncthing——一个开源、跨平台、无需公…

作者头像 李华
网站建设 2026/4/30 5:42:34

OpenColorIO-Configs 完整颜色管理配置指南

OpenColorIO-Configs 完整颜色管理配置指南 【免费下载链接】OpenColorIO-Configs Color Configurations for OpenColorIO 项目地址: https://gitcode.com/gh_mirrors/ope/OpenColorIO-Configs 在当今数字影像制作领域,颜色管理是确保视觉效果一致性的关键环…

作者头像 李华
网站建设 2026/4/30 13:35:26

Turbo Intruder终极指南:从零开始的快速上手教程

Turbo Intruder是一款专为Burp Suite设计的高性能HTTP请求测试扩展工具,在安全测试领域以其卓越的速度表现和强大的自动化能力而闻名。这款工具特别适合处理需要发送大量请求的复杂测试场景,为安全研究人员提供了前所未有的效率提升。 【免费下载链接】t…

作者头像 李华
网站建设 2026/5/1 6:06:45

Apache Airflow数据治理自动化工具链终极指南

在当今数据驱动的商业环境中,数据治理已成为企业成功的关键。Apache Airflow不仅是一个强大的工作流调度平台,更通过其完整的数据治理自动化工具链,为企业提供了从数据收集到合规审计的一站式解决方案。让我们深入探索这个终极工具链如何让您…

作者头像 李华