”六边形战士”雷达图原来是这样画出来的

news/2024/11/13 5:44:05/

"六边形战士"雷达图是怎样画出来的

大家认识这张图吧!

在这里插入图片描述

​ 图片来源于网络

乒乓球大佬马龙无论是从力量、速度、技巧、发球、防守、经验六个方面都是边框撑爆,不得不说,在日本乒乓球选手面前马龙就是神一样的存在啊,就像游戏里面的大Boss一样的又很又慕啊!

那么,大家知道这这样的雷达图是怎样的生成出来的吗?

实际上,想生成这样的图是很简单的。而且我们可以借用很多工具来实现。比如我们前面用来生成疫情地图的Tableau或者PowerBi、FineBi等商业工具都可以轻松的绘出,而作为具有强大三方库社区的Python语言来讲,自然也肯定能够实现这样的图。接下来,我们就用Python也实现一下这样的“六边形战士”雷达图

首先,我们先来剖析一下在可视化时候实现雷达图的原理实际上雷达图就是一个简单的折线图,但是,不同的是,我们将这个折线图映射到了极坐标上,那么,也就得到了雷达图。

顺便讲一下,雷达图作用是什么呢?既然看得懂“六边形战士”,那么,相信你知道就看懂了雷达图,没错,我们从”六边形战士“马龙的实力雷达图上发现,马龙无论是在力量、速度、技巧、发球、防守、还是经验方面都是无可挑剔。也就是说,雷达图实际上也就是像折线图一样,我们能够看出各横坐标对应的数值的代表情况,但是,如果我们知道,通常折线图横坐标和纵坐标一般只各自代表一个属性变量,而且,就算我们从内心接收纵轴画几个属性标量的数值,但是我们会发现那样出的图并不直观,就像下面这样。

在这里插入图片描述

相信这样的图,我们内心是接受不了的吧!

但是,想像一下,如果我们将这个折线图映射到极坐标上,那么,我们要了解的信息是不是自然一目了然呢?因此,雷达图正式这样的作用,当我们需要对几个属性(属性不多)的数据进行比较时,从折线图上和直方图上都不能很合适的情况下,我们就可以采用雷达图来进行可视化,这样更加一目了然。当然,我们还可以用它来用在很多其他的应用场景。

讲完雷达图的作用和可视化原理,下面,我们正式开画。

使用matplotlib来进行可视化

1、导入数据

# 导入数据分析三大神器import numpy as np
import pandas as pd
import matplotlib.pyplot as pltimport warnings
warnings.filterwarnings("ignore")   # 忽略警告

2、设置极坐标的角度和“六边形战士“的数据

# 设定角度
angles = np.linspace(0,2*np.pi,7,endpoint=True)   # # 设置数据
data = np.array([[7]*7])   # 这里设置7个数据,并且保证第一和最后一个数据相等

参数代表从0到2*pi,将它分成7个角度,这样实际得到的第七个角度和第1个角度是一样的,一个为2Pi,另一个为0,实际上为我们也可以只设置留个角度,然后将6个数据放在对应的轴上,但是那样不能使得我们如果在雷达图的第一个数据不等于第六个数据时将使得雷达图不能闭合,就像下面这样。

在这里插入图片描述

所以这就是多设置一个数值,而且使得第7个数值和第一个数值相同的原因。

3、用创建画布,建立极坐标,绘图

fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111,polar=True)  # 使用极坐标plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题# 画线
# for i in range():
ax.plot(angles,data[0],linewidth=2)  # linewidth=2线条宽度# 填充颜色,alpha表示透明高度
ax.fill(angles,data[0],alpha=0.5,color='red')# 画轴并画出轴的标签,fontsize设置字体大小
ax.set_thetagrids(angles[:-1]*180/np.pi,['力量','速度','技巧','发球','防守','经验'],fontsize=15)# 添加标题
plt.title('马龙实力雷达图',fontsize=20)# 添加网格线
ax.grid(True)# 去掉最外围的黑圈
ax.spines['polar'].set_visible(False) 

雷达图展示

在这里插入图片描述

怎么样,学废了吗?赶紧试试吧!

想要获取更多可视化及相关知识请移步到翔宇的微信公众号“数据分析者”
(打开微信扫一扫或者搜索公众号“数据分析者也是一样的哦”)
在这里插入图片描述


http://www.ppmy.cn/news/343583.html

相关文章

图像Haar小波变换

说起小波变换就需要提起傅里叶变换。傅里叶变换就是把波进行分解,可以认为任意一个周期波都可以有足够多的正弦(余弦)波组成,这里足够多的正弦波对应的频率不同,把这些足够的正弦波放在频域中,就是傅里叶变…

雷达电磁波

一、电磁波的散射 1. 电磁波的特征 电磁波是在空间传播的电磁()和磁场(),它在时空上呈现正弦和余弦的变化。 具有振幅、极化面、波长(或频率)、传播方向四个基本物理量。 因为两者总是大于1&…

NASA成功撞击1100公里外小行星!人类史上首次,主动避免恐龙覆辙,马斯克亦有贡献...

金磊 Alex 发自 凹非寺量子位 | 公众号 QbitAI 家人们,见证历史了! 就在刚刚,人类完成了首次行星防御演习的撞击任务: 由NASA发射的DART(戏称“打他”)航天器,成功撞击距地1100万千米的一颗小行…

【每日一题Day235】LC1483树节点的第 K 个祖先 | 倍增

树节点的第 K 个祖先【LC1483】 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节…

如何在7段和16段LED显示屏中表示数字和字母?

三种 7 段显示代表英文数字的例子和 14 段显示代表英文的例子。 7段显示器和1段显示器在日常生活中很常见,它们都以阿拉伯数字和英文字母表示信息,除了16段显示器可以显示完整的阿拉伯数字、大写字母和小写英文字母; 最常用的7段显示阿拉伯数字也可以代表…

led屏幕条形液晶

条形液晶屏的应用和选型    条形液晶屏是新时代的新产物,顾名思义,条形液晶屏也就是一个长宽比大于2:1的液晶屏,在我们学习生活中的每个不同角落发展都有广泛应用,比如:商场进行广告、公交站台、地铁可以显示、广告设计标牌、车…

3 个技巧,让你像技术专家一样解决编码问题

「我应该如何提高解决问题的能力?尽管我掌握了 JavaScript,却无法解决实际问题或理解复杂的 JavaScript 代码。」 经常有年轻的开发者朋友问我类似的问题。对开发者来说,解决问题非常重要。编写优秀的代码是一门创造性的艺术,而要…