Matplotlib 绘制雷达图
在数据分析和可视化领域,雷达图是一种常用的图表类型。Matplotlib 是一个用于绘制 2D 图形的 Python 库,也可以用于绘制雷达图。本文将介绍如何使用 Matplotlib 绘制雷达图,包括数据准备、绘图方式和样式设置。
数据准备
绘制雷达图需要先准备好数据,特别地,需要确定雷达图的多边形边数和每个多边形的数据。下面以一个实例说明:
import matplotlib.pyplot as plt
import numpy as np
# 数据准备
labels = ['A', 'B', 'C', 'D', 'E']
data = np.array([80, 90, 85, 70, 95])
# 绘制雷达图
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, data, 'bo-', linewidth=2)
ax.fill(angles, data, alpha=0.25)
ax.set_thetagrids(angles * 180 / np.pi, labels)
plt.show()
首先定义了标签和数据,然后通过函数 np.linspace() 生成等差数列来确定雷达图的多边形边数和每个角度的标签,代码中设置了5个标签。接着,将数据首尾相连,在数据数组后添加一个第一个元素,通过 np.concatenate() 进行拼接。然后将标签角度首尾相连,同样使用 np.concatenate() 将数组连接。最后,使用 matplotlib 的属性设置,生成雷达图。
绘图方式
Matplotlib 绘制雷达图的基本语句为:
ax.plot(angles, data, 'bo-', linewidth=2)
其中,ax 表示 Plot Axes,即绘图区域,angles 表示角度,data 表示数据。‘bo-’ 表示蓝色实心圆点和直线,linewidth=2 表示线宽。绘制的雷达图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUu2yLX1-1684330385665)(https://i.loli.net/2021/08/23/VroPE4lgbOcyJKL.png)]
在上图中,每个多边形区域代表一组数据,数据通过线条连接,每个数据所在的角度放在对应的顶点处。用 fill() 方法可以将雷达图填充颜色,生成更直观的视觉效果:
ax.fill(angles, data, alpha=0.25)
其中,alpha 为颜色透明度,取值范围为 0~1。填充之后的雷达图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iyFMqiQm-1684330385669)(https://i.loli.net/2021/08/23/G2xAPiLznTX9mBu.png)]
样式设置
Matplotlib 提供了许多样式设置选项,可以帮助我们进行更加个性化的图表配置。下面列出一些常用的样式设置选项:
修改数据范围
如果数据集中存在异常值,可以使用 ylim() 方法来设置数据显示的范围,以显示更为清晰地雷达图。例如,在上述代码中添加 ylim() 方法可以得到如下的图表:
ax.set_ylim(0, 100)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AinVyuhY-1684330385671)(https://i.loli.net/2021/08/23/35OATMn8PNKirt7.png)]
添加标签说明
使用 legend() 方法可以添加图例说明,让数据更清晰地表达。例如,在上述代码中添加以下的 legend() 方法:
ax.legend(['score'], loc='best')
其中,‘score’ 为数据对应的名称,loc=‘best’ 表示自适应位置最佳。
添加网格
使用 grid() 方法可以添加网格线条,并使图表更易读。例如,在上述代码中添加以下的 grid() 方法:
ax.grid(True)
以下为添加网格之后的雷达图,标签和填充颜色均可自行修改进行搭配:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csDezq5a-1684330385672)(https://i.loli.net/2021/08/23/As3Y1CUz8ZlDBvn.png)]
结论
本文介绍了如何使用 Matplotlib 绘制雷达图,涵盖了数据准备、绘图方式和样式设置。Matplotlib 提供了许多选项来帮助我们打造更出色的图表。在数据可视化中,雷达图是一种常用的图表,帮助我们快速直观地了解数据。
最后的最后
本文由chatgpt生成,文章没有在chatgpt
生成的基础上进行任何的修改。以上只是chatgpt
能力的冰山一角。作为通用的Aigc
大模型,只是展现它原本的实力。
对于颠覆工作方式的ChatGPT
,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。
🧡AI职场汇报智能办公文案写作效率提升教程 🧡 专注于AI+职场+办公
方向。
下图是课程的整体大纲
下图是AI职场汇报智能办公文案写作效率提升教程
中用到的ai工具
🚀 优质教程分享 🚀
- 🎄可以学习更多的关于人工只能/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 AI职场汇报智能办公文案写作效率提升教程 🧡 | 进阶级 | 本课程是AI+职场+办公的完美结合,通过ChatGPT文本创作,一键生成办公文案,结合AI智能写作,轻松搞定多场景文案写作。智能美化PPT,用AI为职场汇报加速。AI神器联动,十倍提升视频创作效率 |
💛Python量化交易实战 💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |