综述
python的matplotlib画图库的功能非常强大,可以画很多很多种图,我们日常生活中遇到的雷达图也不例外。
雷达图也被称为网络图,蜘蛛图,星图等,是一个不规则的多边形。雷达图可以形象地展示相同事物的多维指标,应用场景非常多,比如本篇博客中,用来展示球员的不同能力的区别。
matplotlib库中的雷达图绘制是基于坐标的,因此所有的数据和标签都要根据角度来计算出位置。
本篇博客将详细的解释绘制雷达图过程中的思路、过程以及各个函数方法的详细解析,如有不正确的地方欢迎大佬指正~
绘图代码和解析 绘制一张多主体雷达图所谓多主体雷达图,就是在一张图中显示多个多边形组成的属图,形成直观的对比。
联系人:何经理预处理
对应的包下好,然后解决一下中文和符号显示的问题,设置默认的字体,修改绘图样式;
加载数据集(我这里的数据集来源:某绿色足球app),提取字典中的键和值分别保存在labels和score当中。
封闭雷达图
由于我们画出来的图是一个封闭的多边形,而我们提取出来的score、labels和angles数据的每一项并不是尾相接的,因此我们需要把每一个列表的第一项copy一下,然后添加到列表末尾。
这里因为我弄了三个球员的数据,所以有三条score数据。
提一下np.concatenate函数,这是一个numpy库中对多个数组进行并的函数,参数格式为:concatenate((arr1,arr2,arr3),axis=0),第一个括号里面是要并的数组,可以填任意个,第二个axis参数,与并方式有关,这里我们用不到就不多赘述了。
绘制图像
绘制图像基本跟绘制条形图的步骤差不多,有几个可以注意的点:
plot函数中,绘制条形图是按照“横坐标-纵坐标”来填写第一和第二个参数的,管道保温施工由于我们雷达图是基于坐标的,matplotlib也很智能的提供了“角度-半径”的坐标参数填写方式;
plot中的颜色只管边框颜色,fill函数中的颜色是填充颜色,可以自由组追求美观;
fill函数中的alpha参数指的是覆盖区的透明度,越小表示越透明,区间0-1;
plt.legend图例函数中的loc,是描述图例位置的
代码如下:
完整代码:
后得到的雷达图:
还是挺好看的(?)
绘制多张单主体雷达图数据处理部分跟上面一样,我们直接从画图讲起。
建立子图
先我们用plt.figure绘制好基本画布之后,需要建立三个子图(因为有三个球员):
我们把整个画布看作一个矩阵,有m行n列;
第一个参数是一个三位数,第一位表示该子图在整个画布的行位置,1表示总共把画布划分为1行;第二位表示列,3表示总共把画布划分为3列;第三个表示索引值,指的是具体的位置,按照从上到下从左到右排列,比如在一个2*2的画布中,索引值为3表示在第二行第一个;
循环遍历画每个子图
先把画图用的子图、数据、标签、颜色都用列表存起来,方便遍历;
逍遥堂后千寻木,长送中宵风雨声。误喜对床寻旧约,不知漂泊在彭城。
遍历每一个子图:
先画角度坐标轴和框线,’-.'表示框线的样式是有一个小线段加一个点组成,lw是linewidth的缩写,表示线的粗细;
先绘制沿半径方向的等值线,再绘制角度轴;
绘图并填充颜色,跟上面一样;
标出数据下标,ha和va是调整水平和垂直方向的位置
后调整labels、坐标值范围等参数
后得到果(个人审美有限,不喜勿喷):
总体来说,强大的matplotlib + 灵活运用代码 + 美化 = 一幅好看的雷达图~
总结到此这篇关于用python绘制坐标雷达图的文章就介绍到这了,更多相关python坐标雷达图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
