下面是如何用Python绘制雷达图的完整攻略:
下面是如何用Python绘制雷达图的完整攻略:
1. 简介
雷达图又叫蜘蛛网图、极坐标图,是通过在同一张图表上描绘多个相关变量的方法,通常用于展示相对值。如何用 Python 绘制雷达图呢?可以使用 Matplotlib 库中的 Polar(极坐标)功能进行绘制,接下来我们就来一步一步讲解。
2. 准备工作
在开始绘制雷达图之前,我们需要先引入 NumPy 和 Matplotlib 库,代码如下:
import numpy as np
import matplotlib.pyplot as plt
接着,我们需要定义数据,这里我们以五维数据(R,Python,Java,JavaScript,PHP)为例,代码如下:
#数据数目
data_number=5
#定义数据
data = [30, 20, 25, 35, 27]
#将360度分为data_number份
angles = np.linspace(0, 2*np.pi, data_number, endpoint=False)
3. 绘制雷达图
接下来,我们可以通过 Matplotlib 中的 Polar 功能来进行绘制雷达图,代码如下:
#设置绘图区域大小
fig = plt.figure(figsize=(6,6))
#使用极坐标
ax = fig.add_subplot(111, polar=True)
#绘制折线图(第一个点和最后一个点连线)
ax.plot(np.concatenate((angles,[angles[0]])), np.concatenate((data,[data[0]])), 'bo-', linewidth=2)
# 填充颜色
ax.fill(np.concatenate((angles,[angles[0]])), np.concatenate((data,[data[0]])), facecolor='r', alpha=0.25)
ax.set_thetagrids(angles * 180/np.pi, ['R', 'Python', 'Java', 'JavaScript', 'PHP'])
ax.set_title("Radar Chart", fontsize=20)
ax.grid(True)
plt.show()
4. 示例说明
4.1 雷达图示例1:绘制多组数据的雷达图
假设我们现在有两组五维数据,例如:
#第一组5维数据
data1 = [20, 30, 25, 35, 27]
#第二组5维数据
data2 = [35, 25, 20, 30, 29]
这时候我们需要绘制多组数据的雷达图,代码如下:
# 数据数目
data_number = 5
# 定义数据
data1 = [20, 30, 25, 35, 27]
data2 = [35, 25, 20, 30, 29]
# 将360度分为data_number份
angles = np.linspace(0, 2*np.pi, data_number, endpoint=False)
# 绘图区域大小
fig = plt.figure(figsize=(6,6))
# 使用极坐标
ax = fig.add_subplot(111, polar=True)
# 绘制折线图(第一个点和最后一个点连线)
ax.plot(np.concatenate((angles,[angles[0]])), np.concatenate((data1,[data1[0]])), 'bo-', linewidth=2)
ax.plot(np.concatenate((angles,[angles[0]])), np.concatenate((data2,[data2[0]])), 'ro-', linewidth=2)
# 填充颜色
ax.fill(np.concatenate((angles,[angles[0]])), np.concatenate((data1,[data1[0]])), facecolor='r', alpha=0.25)
ax.fill(np.concatenate((angles,[angles[0]])), np.concatenate((data2,[data2[0]])), facecolor='b', alpha=0.25)
# 设置网格线角度、标签、颜色、线条样式;
ax.set_thetagrids(angles * 180/np.pi, ['R', 'Python', 'Java', 'JavaScript', 'PHP'])
ax.grid(True)
# 添加标题
ax.set_title("Radar Chart of Multi-Data")
# 显示图形
plt.show()
4.2 雷达图示例2:绘制不同颜色的雷达图
假设我们希望对每个数据的各个维度使用不同的颜色进行绘制。通过为每个角度设置不同的颜色,即可实现不同颜色的雷达图。代码如下:
# 数据数目
data_number = 5
# 定义数据
data = [30, 20, 25, 35, 27]
# 将360度分为data_number份
angles = np.linspace(0, 2*np.pi, data_number, endpoint=False)
# 绘图区域大小
fig = plt.figure(figsize=(6,6))
# 使用极坐标
ax = fig.add_subplot(111, polar=True)
# 绘制折线图(第一个点和最后一个点连线)
ax.plot(np.concatenate((angles,[angles[0]])), np.concatenate((data,[data[0]])), 'bo-', color=['r', 'b', 'g', 'y', 'k'], linewidth=2)
# 填充颜色
ax.fill(np.concatenate((angles,[angles[0]])), np.concatenate((data,[data[0]])), facecolor='r', alpha=0.25)
# 设置网格线角度、标签、颜色、线条样式;
ax.set_thetagrids(angles * 180/np.pi, ['R', 'Python', 'Java', 'JavaScript', 'PHP'])
ax.grid(True)
# 添加标题
ax.set_title("Radar Chart of Different Color")
# 显示图形
plt.show()
以上就是如何用 Python 绘制雷达图的完整攻略,通过以上步骤,你已经可以轻松绘制出优美的雷达图了。
沃梦达教程
本文标题为:如何用python绘制雷达图


基础教程推荐
猜你喜欢
- Python实现查询剪贴板自动匹配信息的思路详解 2023-12-14
- Python使用turtle模块绘制爱心图案 2023-12-12
- Python克服了Windows 255路径文件名限制并将目录归档 2023-11-12
- python multiprocessing-在正在运行的进程上进行类似选择,以查看已完成的进程 2023-11-14
- python 多进程,多线程,协程 2023-09-04
- Python实现发送警告通知到企业微信方法详解 2023-08-11
- Python中Yield的基本用法 2023-12-14
- python – WindowsError:[错误740]即使在禁用UAC后,请求的操作也需要提升 2023-11-16
- python – aws – “无法导入模块’进程’:/ var /task/numpy/core/multiarray.so:无效的ELF头” 2023-11-15
- pdf论文中python画的图Type 3 fonts字体不兼容的解决方案 2023-12-13