matplotlib绘制雷达图的基本配置(万能模板案例)
发布时间:2023-05-18 02:27:12
雷达图是一种多维数据可视化图表,通常用于比较不同项之间的差异或相似性。在matplotlib中,通过使用polar坐标系和fill函数可以绘制出美观而直观的雷达图。
基本配置包括以下几个方面:
1. 导入必要的模块和数据
在绘制雷达图之前,需要导入matplotlib库以及numpy库。此外,需要将数据以列表或数组的形式准备好。以下是一个简单的例子,其中展示了5个学科对应的成绩。
import matplotlib.pyplot as plt import numpy as np # 数据 labels = ['语文', '数学', '英语', '物理', '化学'] data = [78, 89, 90, 70, 85]
2. 建立射线与角度
为了能够绘制出真正的雷达图,需要指定射线和角度。在matplotlib中,射线用于表示另一维度的数值,而角度用于表示多个变量之间的关系。在本例中,将有5条射线和5个角度。
# 建立射线和角度 angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False) # 封闭形状 data.append(data[0]) angles = np.append(angles, angles[0])
3. 创建图形对象
使用plt.subplot()函数可以在当前的Figure对象中创建一个subplot对象。设置polar的参数可以将grid网格线调整为极坐标样式,添加图例等。
# 创建图形对象
fig = plt.figure(figsize=(6,6), dpi=100)
ax = fig.add_subplot(111, polar=True)
# 设置 grid 网格线以极坐标样式绘制
ax.grid(True, linestyle='--', color='gray', alpha=0.5)
# 添加标题
ax.set_title('学科成绩雷达图', fontsize=15)
# 添加图例
ax.legend(['成绩'], loc='upper right')
4. 绘制填充区域
使用fill函数绘制填充区域。其中,x是相应的角度,y是相应的数值,设置alpha参数使得填充区域透明度更佳接近实际雷达图,设置closed参数为True更改为封闭区域。
# 绘制拐点连线和填充区域 ax.plot(angles, data, 'o-', color='blue', linewidth=2) ax.fill(angles, data, alpha=0.2, closed=True)
完整代码如下:
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['语文', '数学', '英语', '物理', '化学']
data = [78, 89, 90, 70, 85]
# 建立射线和角度
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False)
# 封闭形状
data.append(data[0])
angles = np.append(angles, angles[0])
# 创建图形对象
fig = plt.figure(figsize=(6,6), dpi=100)
ax = fig.add_subplot(111, polar=True)
# 设置 grid 网格线以极坐标样式绘制
ax.grid(True, linestyle='--', color='gray', alpha=0.5)
# 添加标题
ax.set_title('学科成绩雷达图', fontsize=15)
# 添加图例
ax.legend(['成绩'], loc='upper right')
# 绘制拐点连线和填充区域
ax.plot(angles, data, 'o-', color='blue', linewidth=2)
ax.fill(angles, data, alpha=0.2, closed=True)
plt.show()
以上就是绘制雷达图的基本配置,使用上述模板进行修改即可实现其他雷达图的绘制。
