雷达图常用于对多项指标的全面分析。例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较。

用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的介绍:https://www.cnblogs.com/kallan/p/6738577.html

下面,我们从五个方面(编程能力,沟通技能,专业知识,团队协作,工具掌握)来对路人甲和路人乙进行比较。

代码如下:

import numpy as np
from matplotlib import pyplot as plt
fig=plt.figure(figsize=(10,5))
ax1=fig.add_subplot(1,2,1,polar=True) #设置第一个坐标轴为极坐标体系
ax2=fig.add_subplot(1,2,2,polar=True) #设置第二个坐标轴为极坐标体系
fig.subplots_adjust(wspace=0.4) #设置子图间的间距,为子图宽度的40% p1={"编程能力":60,"沟通技能":70,"专业知识":65,"团体协作":75,"工具掌握":80} #创建第一个人的数据
p2={"编程能力":70,"沟通技能":60,"专业知识":75,"团体协作":65,"工具掌握":70} #创建第二个人的数据 data1=np.array([i for i in p1.values()]).astype(int) #提取第一个人的信息
data2=np.array([i for i in p2.values()]).astype(int) #提取第二个人的信息
label=np.array([j for j in p1.keys()]) #提取标签 angle = np.linspace(0, 2*np.pi, len(data1), endpoint=False) #data里有几个数据,就把整圆360°分成几份
angles = np.concatenate((angle, [angle[0]])) #增加第一个angle到所有angle里,以实现闭合
data1 = np.concatenate((data1, [data1[0]])) #增加第一个人的第一个data到第一个人所有的data里,以实现闭合
data2 = np.concatenate((data2, [data2[0]])) #增加第二个人的第一个data到第二个人所有的data里,以实现闭合 #设置第一个坐标轴
ax1.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签
ax1.plot(angles,data1,"o-")
ax1.set_theta_zero_location('NW') #设置极坐标0°位置
ax1.set_rlim(0,100) #设置显示的极径范围
ax1.fill(angles,data1,facecolor='g', alpha=0.2) #填充颜色
ax1.set_rlabel_position('') #设置极径标签位置
ax1.set_title("路人甲",fontproperties="SimHei",fontsize=16) #设置标题 #设置第二个坐标轴
ax2.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签
ax2.plot(angles,data2,"o-")
ax2.set_theta_zero_location('NW') #设置极坐标0°位置
ax2.set_rlim(0,100) #设置显示的极径范围
ax2.fill(angles,data2,facecolor='g', alpha=0.2) #填充颜色
ax2.set_rlabel_position('') #设置极径标签位置
ax2.set_title("路人乙",fontproperties="SimHei",fontsize=16) #设置标题 plt.show()

图像如下:

Matplotlib学习---用matplotlib画雷达图(radar chart)的更多相关文章

  1. Matplotlib学习---用seaborn画矩阵图(pair plot)

    矩阵图非常有用,人们经常用它来查看多个变量之间的联系. 下面用著名的鸢尾花数据来画一个矩阵图.从sklearn导入鸢尾花数据,然后将其转换成pandas的DataFrame类型,最后用seaborn画 ...

  2. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  3. Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)

    直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量的频次. 下面利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://d ...

  4. Matplotlib学习---用matplotlib画折线图(line chart)

    这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...

  5. Matplotlib学习---用matplotlib画误差线(errorbar)

    误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...

  6. matplotlib常见图表绘制——极坐标图-雷达图、极轴图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:斑点鱼 极坐标轴 调用subplot()创建子图时通过设置proje ...

  7. Odoo 8 Graph 视图 之 雷达图 (Radar\Spider)

    据说7.0是有Radar图的,但是8以后被阉割掉了.自己动手 ,丰衣足食. 经过一天的努力,雷达图现已成功加入群共享套餐.

  8. WPF DevExpress 设置雷达图Radar样式

      DevExpress中定义的ChartControl很不错,很多项目直接使用这种控件. 本节讲述雷达图的样式设置 <Grid> <Grid.Resources> <D ...

  9. Matplotlib学习---用matplotlib画阶梯图(step plot)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/us-postage.c ...

随机推荐

  1. VMware(威睿)后端开发笔试题总结

    1.   Linux中查看系统的发行版本信息 的命令? cat/etc/issue    和    lsb_release 2.   linux 挂载一个共享文件夹: mount  -t  cifc ...

  2. Python-爬虫小例子-55

    import re from urllib.request import urlopen def getPage(url): response = urlopen(url) return respon ...

  3. Mysql数据库中的日期相关操作

    1.获取当前时间的日期 select now();----------------------------------如:2008-12-29 16:25:46 select curdate();-- ...

  4. RabbitMQ消息的交换

    消息的交换 目录 RabbitMQ-从基础到实战(1)— Hello RabbitMQ RabbitMQ-从基础到实战(2)— 防止消息丢失 1.简介 在前面的例子中,每个消息都只对应一个消费者,即使 ...

  5. html总结:背景图片拉伸

    两种方法: ⑴推荐方法 <style>body {background-image:url(images/backimage.jpg);background-size:cover;}< ...

  6. ubuntu安装chkconfig.deb系统服务管理工具

    chkconfig简介:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息. 参数用法:   --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统 ...

  7. asp.net Json序列化

    Json作为一种数据传输格式与标准被广泛的使用在项目开发中,可以说简直离不开它.那么怎么来生成JSON格式的数据就成了我们首先需要解决的问题这里我们使用.net. 首先是获取数据 public ban ...

  8. js判断是否是微信浏览器以及重定向

    async created () {//这个是判断是否是微信浏览器, let ua = navigator.userAgent.toLowerCase() if (ua.match(/MicroMes ...

  9. 关于百度地图API和jqGrid踩到的坑

    1.百度地图重新标记问题 var map = new BMap.Map("map"); ...... var marker = new BMap.Marker(point); // ...

  10. scp复制文件到远程服务器上

    scp -P 22 -r 2028792_www  root@120.79.172.45:/usr/local/src Linux scp命令用于Linux之间复制文件和目录. scp是 secure ...