【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码
目录
1. 基本雷达图
2. 多组数据的雷达图
3 交互式雷达地图
4 动态雷达图
0 雷达图概述
雷达图(Radar Chart),也被称为蜘蛛图(Spider Chart)或星型图,是一种用于可视化多维数据的图表类型。雷达图通常由一个多边形或星形的图形构成,每个顶点代表数据的不同维度,而多边形的边缘表示数据的数值。每个维度通常位于雷达图的边缘,而数据值沿着半径方向绘制。
以下是雷达图的一般特点和用途:
特点:
多维度表示:雷达图允许同时表示多个维度的数据,每个维度对应于雷达图的一个轴。这使得用户可以直观地比较不同维度的数据。
相对比例:数据通常以相对比例的方式表示,因此用户可以看到各维度之间的相对关系。这使得雷达图在比较不同数据集的相对强度时非常有用。
多数据集对比:雷达图适用于比较多个数据集之间的差异。通过在同一个雷达图上绘制多个多边形,用户可以清晰地看到不同数据集的表现。
用途:
绩效评估:雷达图常用于评估个体或团队在多个维度上的绩效。例如,可以使用雷达图来评估一名运动员在速度、力量、灵活性等维度上的表现。
决策支持:在决策过程中,雷达图可以帮助决策者比较不同选项在多个关键因素上的优劣。这有助于做出综合决策。
产品特性对比:在产品设计和开发中,雷达图可以用来比较不同产品特性在用户需求、成本、复杂性等方面的差异。
风险分析:雷达图可用于分析风险因素在不同维度上的潜在影响。这对于制定风险管理策略很有帮助。
总之,雷达图是一种多维数据可视化工具,它可以帮助用户更好地理解和比较数据的多个方面,从而支持决策和分析。
1. 基本雷达图
基本雷达图用于可视化多个维度的数据。这种图通常具有一个中心点,每个维度的数据以线条或面积表示。基本雷达图用于可视化单个数据集的不同类别或维度。
import matplotlib.pyplot as plt
import numpy as np# 数据准备
categories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
values = [4, 2, 5, 1, 3]# 标准化数据
normalized_values = [x / max(values) for x in values]# 创建雷达图
angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
normalized_values += normalized_values[:1]
angles += angles[:1]# 绘制雷达图
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.fill(angles, normalized_values, 'b', alpha=0.1)# 设置轴标签
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)# 添加标题
plt.title("Filled Radar Chart")plt.show()

在此示例中,我们首先准备了数据并对其进行了标准化。然后,我们创建了雷达图,并使用
fill函数填充了雷达图中的区域,以强调每个维度的值。最后,我们添加了轴标签和标题,以提高图表的可读性。
2. 多组数据的雷达图
这个示例展示如何绘制多组数据的雷达图,以便比较它们。
import matplotlib.pyplot as plt
import numpy as npcategories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
values1 = [4, 2, 5, 1, 3]
values2 = [3, 4, 2, 3, 5]angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
values1 += values1[:1]
values2 += values2[:1]
angles += angles[:1]fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.fill(angles, values1, 'b', alpha=0.1, label='Dataset 1')
ax.fill(angles, values2, 'r', alpha=0.1, label='Dataset 2')
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)
ax.legend()
plt.show()

3 交互式雷达地图
交互式雷达地图允许用户与地图进行互动,例如缩放、平移、悬停在数据点上查看详细信息等。Plotly是一个流行的Python库,用于创建交互式图表,包括雷达图。
首先,确保你已经安装了Plotly库。如果没有安装,可以使用以下命令进行安装:
pip install plotly
绘制交互式雷达地图:
import plotly.express as px# 示例数据
data = {"City": ["New York", "Los Angeles", "Chicago", "Houston", "Miami"],"Temperature (°C)": [18, 24, 12, 27, 29],"Humidity (%)": [75, 62, 58, 84, 76]
}# 创建交互式雷达地图
fig = px.line_polar(data, r="Temperature (°C)", theta="City", line_close=True, range_r=[0, 30])
fig.update_traces(fill='toself')# 添加湿度数据
fig.add_trace(px.line_polar(data, r="Humidity (%)", theta="City", line_close=True, range_r=[0, 100]).data[0])# 设置布局
fig.update_layout(polar=dict(radialaxis=dict(visible=True,range=[0, 100])),showlegend=True
)# 显示交互式雷达地图
fig.show()
结果在浏览器中展示如下:

在这个示例中,我们使用
plotly.express创建了一个交互式雷达地图。我们首先定义了示例数据,包括城市、平均气温和湿度。然后,我们使用px.line_polar创建了一个雷达图,显示平均气温数据,同时使用px.line_polar添加了湿度数据。最后,我们设置了布局选项,并使用fig.show()显示交互式雷达地图。
4 动态雷达图
用于跟踪数据随时间变化的情况。每个时间点都可以表示为一个雷达图,形成时间序列。
import matplotlib.pyplot as plt
import numpy as np# 数据准备
categories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
time_points = ['Time 1', 'Time 2', 'Time 3', 'Time 4', 'Time 5']# 模拟不同时间点的数据,确保每个时间点的数据长度相同
data = np.random.randint(1, 10, size=(len(time_points), len(categories)))# 创建雷达图
fig, axs = plt.subplots(1, len(time_points), subplot_kw={'projection': 'polar'}, figsize=(12, 4))for i, ax in enumerate(axs):values = data[i]angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()values = np.append(values, values[0]) # 为了保证维度一致,添加一个起始点angles = np.append(angles, angles[0]) # 添加一个起始角度ax.fill(angles, values, 'b', alpha=0.1)ax.set_xticks(angles[:-1])ax.set_xticklabels(categories)ax.set_title(time_points[i])plt.tight_layout()
plt.show()

在此示例中,我们创建了一个包含不同时间点数据的雷达图时间序列。每个时间点的数据以不同的颜色表示,并排列在一个图表中,以显示数据随时间的变化。这是一个简单的静态示例,你可以使用动画库或交互式可视化工具库来创建动态雷达图,以更好地表示数据的时间演变。
相关文章:
【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码
目录 1. 基本雷达图 2. 多组数据的雷达图 3 交互式雷达地图 4 动态雷达图 0 雷达图概述 雷达图(Radar Chart),也被称为蜘蛛图(Spider Chart)或星型图,是一种用于可视化多维数据的图表类型。雷达图通常由…...
KY258 日期累加
KY258 日期累加 int main() {int n 0; //样例个数cin >> n;//for循环处理n个样例for (int i 0; i < n; i){int y, m, d, num;int days[12] { 31,28,31,30,31,30,31,31,30,31,30,31 };//输入年月日 要加的天数cin >> y >> m >> d >>…...
基于CodeFormer实现图片模糊变清晰,去除马赛克等效果
前言 CodeFormer是一种基于AI技术深度学习的人脸复原模型,由南洋理工大学和商汤科技联合研究中心联合开发。该模型通过结合了VQGAN和Transformer等技术,可以通过提供模糊或马赛克图像来生成清晰的原始图像。可以实现老照片修复、照片马赛克修复、黑白照…...
Docker【部署 05】docker使用tensorflow-gpu安装及调用GPU踩坑记录
tensorflow-gpu安装及调用GPU踩坑记录 1.安装tensorflow-gpu2.Docker使用GPU2.1 Could not find cuda drivers2.2 was unable to find libcuda.so DSO2.3 Could not find TensorRT&&Cannot dlopen some GPU libraries2.4 Could not create cudnn handle: CUDNN_STATUS_…...
前后端分离中,前端请求和后端接收请求格式总结
get请求可以携带的参数 1)前端:传统键值对(http:xx?a1&b1) <--> 后端:RequestParam("a") int a , RequestParam("b") int b 2)前端:(http:xx/a/b) <--> 后端:Reque…...
pytorch的基本运算,是不是共享了内存,有没有维度变化
可以把PyTorch简单看成是Python的深度学习第三方库,在PyTorch中定义了适用于深度学习的基本数据结构——张量,以及张量的各类计算。其实也就相当于NumPy中定义的Array和对应的科学计算方法,正是这些基本数据类型和对应的方法函数,…...
Visual Studio 2022新建项目时没有ASP.NET项目
一、Visual Studio 2022新建项目时没有ASP.NET项目 1、打开VS开发工具,选择工具菜单,点击“获取工具和功能” 2、选择“ASP.NET和Web开发”和把其他项目模板(早期版本)勾选上安装即可...
nuiapp项目实战:导航栏动态切换效果实践案例树
测试软件的百忙之中去进行软件开发的工作,开展开发软件的工作事情,也真是繁忙至极点的了。 不到一刻钟的课程内容,个人用了三次去写串联的知识点,然后这是第三次,还是第四次了才完全写出来一个功能的效果。 一刻钟的功…...
【机器学习】集成学习(以随机森林为例)
文章目录 集成学习随机森林随机森林回归填补缺失值实例:随机森林在乳腺癌数据上的调参附录参数 集成学习 集成学习(ensemble learning)是时下非常流行的机器学习算法,它本身不是一个单独的机器学习算法,而是通过在数据…...
主机jvisualvm连接到tomcat服务器查看jvm状态
使用JMX方式连接到tomcat,连接后能够查看前边的部分内容,但是不能查看Visual GC,显示不受此JVM支持, 对了,要显示Visual GC,首先要安装visualvm工具,具体安装方式就是根据自己的jdk版本下载…...
uniapp 自定义tabbar页面不刷新
最近在做自定义tabbar时,每次切换页面都要刷新,页面渲染很慢,需要实现切换页面不刷新问题。 结局思路,原生的tabbar切换页面时就不选新,用switchTab来跳转 1.pages.json中配置tabbar,如下,设置高度为0&am…...
3.1 SQL概述
思维导图: 前言: 前言笔记:第3章 关系数据库标准语言SQL - **SQL的定义**: - 关系数据库的标准和通用语言。 - 功能强大,不仅限于查询。 - 功能覆盖:数据库模式创建、数据插入/修改、数据库安全性与…...
xray安装与bp组合使用-被动扫描
xray安装与bp组合使用-被动扫描 文章目录 xray安装与bp组合使用-被动扫描1 工具官方文档:2 xray官网3 工具使用4 使用指令说明5 此为设置被动扫描6 被动扫描-启动成功7 启动bp7.1 设置bp的上层代理7.2 添加上层代理7777 --》指向的是xray7.3 上层代理设置好后&#…...
Java 中Maven 和 ANT
Java 中Maven 和 ANT Maven 和 Ant 都是用于构建和管理Java项目的工具,但它们在设计和功能上有一些重要的区别。以下是关于 Maven 和 Ant 的区别、优缺点以及它们的作用,以及示例说明: Maven: 设计理念: Maven 是基于…...
Flutter通过Pigeon插件与Android同步异步交互
Flutter 调用原生(Android)方法以及数据传输_flutter调用原生sdk_TDSSS的博客-CSDN博客 https://www.cnblogs.com/baiqiantao/p/16340272.html 可以同时参考这两篇文章...
GTW验厂是什么?GTW验厂评级分类
【GTW验厂是什么?GTW验厂评级分类】 GTW验厂是什么? 全称叫GreenToWear。是为了集合所有环境和产品健康方面的要求,Inditex集团开发的可持续发展准则(简称GTW)此准则适用于Inditex集 及其供应链中所包含的湿加工厂&…...
CVE-2017-12615 Tomcat远程命令执行漏洞
漏洞简介 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,其中 远程代码执行漏洞(CVE-2017-12615) 当 Tomcat 运行在 Windows 主机上,…...
灿芯股份将上会:计划募资6亿元,董事长、总经理均为外籍
10月11日,上海证券交易所披露的信息显示,灿芯半导体(上海)股份有限公司(下称“灿芯股份”)将于10月18日接受上市审核委员会审议会议的现场审议。目前,该公司已递交了招股书(上会稿&a…...
Spring Cloud Gateway 搭建网关
新建一个module添加依赖: <!--Spring Cloud Gateway依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency><!-- nacos客户端依赖…...
ETL数据转换方式有哪些
ETL数据转换方式有哪些 ETL(Extract, Transform, Load)是一种常用的数据处理方式,用于从源系统中提取数据,进行转换,并加载到目标系统中。 数据清洗(Data Cleaning)&am…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
