python实例练习(3)多级雷达图绘制
文章目录
- 简介
- 用到的第三方库介绍
- 代码实例
简介
雷达图是通过多个离散属性,以此来比较对象的最为直观的工具。如果能掌握雷达图的绘制,可以为学习工作以及生活带来便利和乐趣。
用到的第三方库介绍
Numpy库:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
Matplotlib库:Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
代码实例
在编写代码前,我们需要对霍兰德职业兴趣理论有一定的了解。这个理论认为人格类型、兴趣、和职业之间有关系,于是将人格分为了现实性、研究型、艺术型、社会型、企业型和常规型。基于上面的分类,因此可以绘制一个展现职业人格类型的雷达图。我们将以工程师、实验员、艺术家、推销员、社会工作者、记事员这六个职业数据为例子绘制图形。
import numpy as np
import matplotlib.pyplot as plt
import matplotlibplt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
radar_labels = np.array(['研究型(I)','艺术型(A)','社会型(S)','企业型(E)','常规型(C)','现实型(R)'])
nAttr = 6
data =np.array([[0.40,0.32,0.35,0.30,0.30,0.88],[0.85,0.35,0.30,0.40,0.40,0.30],[0.43,0.89,0.30,0.28,0.22,0.30],[0.30,0.25,0.48,0.85,0.45,0.40],[0.20,0.38,0.87,0.45,0.32,0.28],[0.34,0.31,0.38,0.40,0.92,0.28]])
data_labels = ('工程师','实验员','艺术家','推销员','社会工作者','记事员')
angles = np.linspace(0,2*np.pi,nAttr,endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles,[angles[0]]))
fig = plt.figure(facecolor="white")
plt.subplot(111,polar=True)
plt.plot(angles,data,'bo-',color='gray',linewidth=1,alpha=0.2)
plt.plot(angles,data,'o-',linewidth=1.5,alpha=0.2)
plt.fill(angles,data,alpha=0.25)
plt.thetagrids((angles*180/np.pi)[:-1],radar_labels)
plt.figtext(0.52,0.95,'霍兰德人格分析',ha='center',size=20)
legend=plt.legend(data_labels,loc=(0.94,0.80),labelspacing=0.1)
plt.setp(legend.get_texts(),fontsize='small')
plt.grid(True)
plt.savefig('holland_radar.jpg')
plt.show()
属性标签存放在data_labels中,数据存放在data中,np.linspace设置起点0,末值为2π,返回两端点间数值平均分布的长为nAttr的数组angle,他表示一个属性点到下一个属性点笔画需要旋转的角度,取决于nAttr的大小,即雷达图的多边数。np.concatenate函数作用虽然是能够使图片首尾相连,但是在2020年之后的新版本中,matplotlib不需要再进行np.concatenate了,因此需要在plt.thetagrids中对angle进行[:-1]切片,接下来就是设置坐标、颜色等事项。实例的完成图如下所示:
python实例练习(3)多级雷达图绘制相关推荐
- python多级雷达图绘制解析_Python实例15:霍兰德人格分析雷达图
Python实例15:霍兰德人格分析雷达图 雷达图是多特性直观展示的重要方式: 霍兰德认为:人格兴趣与职业之间应有一种内在的对应关系: 人格分类:研究型.艺术型.社会型.企业型.传统型.现实型: 职业 ...
- 多级雷达图绘制python_Python 详解雷达图/蛛网图
雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...
- 数据可视化,python英雄联盟个人能力值雷达图绘制。
英雄联盟(简称LOL)是如今很火的一款由美国拳头游戏(Riot Games)开发的即时战略(MOBA)游戏,游戏由采用5v5组队模式进行比赛.一般以KDA,输出,发育,辅助,生存来反应一个选手各方面的 ...
- Python实例7:七段数码管绘制
Python实例7:七段数码管绘制 基本思路: 绘制单个数字对应的数码管: 获得一串数字,绘制对应的数码管: 获取当前系统时间,绘制对应的数码管: 步骤: 七段数码管由7个基本线条组成:可以有固定顺序 ...
- python雷达图详解_Python简单雷达图绘制
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.famil ...
- python话雷达图-Python简单雷达图绘制
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.famil ...
- python画雷达图-Python简单雷达图绘制
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.famil ...
- Python数据可视化之Pygal(雷达图)
pygal是一个SVG图表库.SVG是一种矢量图格式.全称Scalable Vector Graphics – 可缩放矢量图形.用浏览器打开svg,可以方便的与之交互. import pygal #准 ...
- [转载] Python数据可视化库-Matplotlib——折线图绘制
参考链接: Python Matplotlib数据可视化 plot折线图 # coding:utf-8 import pandas as pd import numpy as np from matp ...
最新文章
- 一步一步写自己的SqlHelper类库
- 分布式MySQL数据库TDSQL架构分析
- python spearman相关系数_Python spearman相关系数不匹配 .
- POJ1724 ROADS 费用最短路
- C++之vector容器初学(二)——插入和删除
- linux网络编程之posix 线程(四):posix 条件变量与互斥锁 示例生产者--消费者问题
- 凸优化有关的数值线性代数知识五:作业题
- 匹配 边覆盖 独立集 顶点覆盖
- Android支持库AndroidX和support-v4、appcompat-v7的前世今生!
- 烽火交换机S2000单独划分VLAN的方法
- 免费下载C++Prime!
- 51nod 1128 正整数分组 V2(二分数组)
- CSMA/CD 简要介绍
- java 写入excel 追加,Java - 追加excel
- 图片如何转换成PDF格式?教你一招快速转换
- Hybrid Dilated Convolution学习笔记
- JavaEE进阶 - Spring Boot 日志文件 - 细节狂魔
- 你所不知的角落,有人在做没有深度学习的AI
- 算法学习笔记2:凸包及其解法
- 李宏毅机器学习PTT的理解(2)深度学习为甚深?