python雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图...

系列文章链接:【Python菜鸟进阶大神】Matplotlib数据可视化001:基础API汇总&散点图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第1张图片

【Python菜鸟进阶大神】Matplotlib数据可视化002:折线图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第2张图片

【Python菜鸟进阶大神】Matplotlib数据可视化003:条形图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第3张图片

【Python菜鸟进阶大神】Matplotlib数据可视化004:饼图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第4张图片

【Python菜鸟进阶大神】Matplotlib数据可视化005:直方图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第5张图片

【Python菜鸟进阶大神】Matplotlib数据可视化006:箱线图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第6张图片

【Python菜鸟进阶大神】Matplotlib数据可视化007:词云​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第7张图片

有一种图他可以根据指定指标评价体系,给予评价并直观反映出来,如:

1、从企业收益性、生产性、流动性、安全性和成长性这几个方面评判经营状况;

2、根据9型人格每个维度打分,你属于什么类型;

3、王者荣耀中英雄“杀、死、助、团战率、推塔数、经济比”等评分的直观体现等等。

对的,他就是我们今天要介绍给大家的雷达图,英文名

Radar Chart,乳名蜘蛛网图,学名星图,别名戴布拉图,他的坐标轴很特别——平行坐标,轴径向排列~O(∩_∩)O哈哈~

目 录极坐标介绍

Matplotlib绘制极坐标图

常用参数介绍

代码实现

极坐标介绍

极坐标

1、极点:在平面内取一个定点O;

2、极轴:引一条射线Ox

3、极径:选定一个长度单位和角度的正方向(通常取逆时针方向)。对于平面内任何一点M,用ρ表示线段OM的长度(有时也用r表示),θ表示从Ox到OM的角度,ρ叫做点M的极径

4、极角:θ叫做点M的极角,

5、极坐标:有序数对 (ρ,θ)就叫点M的极坐标,这样建立的坐标系叫做极坐标系。

通常情况下,M的极径坐标单位为1(长度单位),极角坐标单位为rad(或°)

Matplotlib绘制极坐标图

创建极坐标图

matplotlib的pyplot子库提供了绘制极坐标图的方法,在调用subplot()创建子图时通过设置projection='polar',便可创建一个极坐标子图,然后调用plot()在极坐标子图中绘图。

下面创建一个极坐标子图和一个直角坐标子图进行对比:

import numpy as np

from matplotlib import pyplot as plt

fig=plt.figure(figsize=(10,5))

ax1 = plt.subplot(121, projection='polar') #极坐标轴

ax2 = plt.subplot(122)

fig.subplots_adjust(wspace=0.4) #设置子图间的间距,为子图宽度的40%

theta=np.arange(0,2*np.pi,0.02)

ax1.plot(theta,theta/6,'-.',lw=2)

ax2.plot(theta,theta/6,'-.',lw=2)

plt.show()

常用参数介绍

绘制雷达图,并没有直接的函数,而是用一下坐标轴的参数予以定义。

极坐标正方向

set_theta_direction:方法用于设置极坐标的正方向set_theta_direction的参数值为1,'counterclockwise'或者是'anticlockwise'的时候,正方向为逆时针;

set_theta_direction的参数值为-1或者是'clockwise'的时候,正方向为顺时针;

极坐标0°位置

set_theta_zero_location方法用于设置极坐标0°位置0°可设置在八个位置,分别为N, NW, W, SW, S, SE, E, NE

参数值为'N','NW','W','SW','S','SE','E','NE'时,0°分别对应的位置为方位N, NW, W, SW, S, SE, E, NE;

极坐标角度网格线显示

set_thetagrids方法用于设置极坐标角度网格线显示参数为所要显示网格线的角度值列表

默认显示0°、45°、90°、135°、180°、225°、270°、315°的网格线

极坐标角度偏离

set_theta_offset方法用于设置角度偏离参数值为弧度值数值

极坐标极径网格线显示

set_rgrids方法用于设置极径网格线显示参数值为所要显示网格线的极径值列表,最小值不能小于等于0

极坐标极径标签位置

set_rlabel_position方法用于设置极径标签显示位置参数为标签所要显示在的角度

极坐标极径范围

set_rlim方法用于设置显示的极径范围参数为极径最小值,最大值

极坐标极径最大值

set_rmax方法用于设置显示的极径最大值该方法要在绘制完图像后使用才有效

极坐标极径最小值

set_rmin方法用于设置显示的极径最小值该方法要在绘制完图像后使用才有效

极坐标极径网格线显示范围

set_rticks方法用于设置极径网格线的显示范围如ax.set_rticks(np.arange(0.1, 0.9, 0.2))

代码实现

import numpy as np

from matplotlib import pyplot as plt

fig=plt.figure(figsize=(10,5))

ax=fig.add_subplot(1,1,1,polar=True) #设置一个坐标轴为极坐标体系

jingke={"推进":100,"战绩(KDA)":30,"生存":90,"团战":60,"发育":60,"输出":20} #创建英雄数据

y=np.array([i for i in jingke.values()]).astype(int) #提取英雄的信息

label=np.array([j for j in jingke.keys()]) #提取键作为标签

x = np.linspace(0, 2*np.pi, len(data1), endpoint=False) #data1里有几个数据,就把整圆360°分成几份

x1 = np.concatenate((x, [x[0]])) #将x的第一个值添加到原来的x组成第一个和最后一个元素一致的新列表,以实现x闭合

y1 = np.concatenate((y, [y[0]])) #将y的第一个值添加到原来的y组成第一个和最后一个元素一致的新列表,以实现y闭合

#绘制极坐标

ax.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签

ax.plot(x1,y1,"o-")

ax.set_theta_zero_location('E') #设置极坐标0°位置

ax.set_rlim(0,100) #设置显示的极径范围

ax.fill(x1,y1,facecolor='b', alpha=0.2) #填充颜色

ax.set_rlabel_position(15)

ax.set_title("荆轲",fontproperties="SimHei",fontsize=16) #设置标题

plt.show()

效果图如下:

你学到了吗?

原文链接:【Python菜鸟进阶大神】Matplotlib数据可视化008:雷达图\极坐标图​mp.weixin.qq.compython雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图..._第8张图片

你可能感兴趣的:(python雷达图数据)