news 2026/4/18 0:01:40

四、雷达图+玫瑰图

作者头像

张小明

前端开发工程师

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/4/16 17:46:27

Zotero-reference插件完全指南:让参考文献管理变得简单高效

还在为学术写作中的繁琐引用格式而头疼吗?Zotero-reference插件作为Zotero的得力助手,能够彻底改变你的文献管理方式。这款专为学术研究人员设计的插件,让参考文献的格式化和引用变得前所未有的简单。 【免费下载链接】zotero-reference PDF …

作者头像 李华
网站建设 2026/4/13 3:05:17

有毒有害气体及粉尘监测控制系统

有毒有害气体及粉尘监测控制系统是现代工业安全生产、环境保护和职业健康中不可或缺的核心技术装备,用于实时、连续地监测特定环境中的颗粒物(粉尘)和各种有毒、有害、可燃气体的浓度,并在浓度超标时发出警报,从而保障…

作者头像 李华
网站建设 2026/4/16 18:40:34

ZooKeeper选举机制详解

Zookeeper选举机制——第一次启动SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。 ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中…

作者头像 李华
网站建设 2026/4/17 20:33:14

图片GPS数据编辑器 - 在线编辑图片GPS地理信息位置信息

软件介绍 图片GPS数据编辑器是一款功能强大的在线工具,专为编辑图片GPS位置信息而设计。该工具支持添加、修改和删除图片的GPS数据,所有操作均在本地完成,无需上传图片到服务器,最大程度保护用户隐私。 功能特点 🎯…

作者头像 李华
网站建设 2026/4/15 2:28:48

光特通信:硬核技术背后的隐形冠军

在万物互联的时代,光纤通信如同信息高速公路的"基石",而光模块则是这条公路上精准指挥的"智能信号灯"。作为国内少数具备从自主研发到销售全产业链能力的企业,深圳市光特通信技术有限公司正以自主创新的技术实力&#xf…

作者头像 李华
网站建设 2026/4/17 23:26:38

MATLAB图像导出完整指南:从基础到专业的完美解决方案

MATLAB图像导出完整指南:从基础到专业的完美解决方案 【免费下载链接】export_fig A MATLAB toolbox for exporting publication quality figures 项目地址: https://gitcode.com/gh_mirrors/ex/export_fig 还在为MATLAB导出的图像质量不佳而烦恼吗&#xff…

作者头像 李华