欢迎访问宙启技术站
智能推送

利用matplotlib.axesAxes()绘制雷达图

发布时间:2024-01-12 20:59:47

雷达图又称为极坐标图,主要用于表示多个维度的数据。在使用matplotlib库绘制雷达图时,可以使用matplotlib.axesAxes()方法来创建一个Axes对象。

首先,导入必要的库:

import matplotlib.pyplot as plt

import numpy as np

接下来,创建一个示例数据用于绘制雷达图:

data = {'A': 0.8, 'B': 0.6, 'C': 0.9, 'D': 0.7, 'E': 0.5}

然后,创建一个Axes对象:

fig = plt.figure(figsize=(6, 6))

ax = fig.add_subplot(111, polar=True)

matplotlib.axesAxes()方法的polar参数设置为True时,表示创建一个极坐标系。添加subplot时需要指定三个参数:numRows(行数)、numCols(列数)和plotNum(此子图在其中显示)。本例中创建的是一个1x1的子图,位置为1,所以参数为(111)。

接下来,为雷达图添加一些属性和标签:

tags = list(data.keys())  # 获取标签

values = list(data.values())  # 获取数据值

N = len(tags)  # 获取标签个数

angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()  # 计算每个划分的角度

angles.append(angles[0])  # 将 个角度添加到最后

values.append(values[0])  # 将 个值添加到最后

ax.plot(angles, values, 'o-', linewidth=2, label='data')  # 绘制雷达图轮廓

ax.fill(angles, values, alpha=0.25)  # 填充雷达图

ax.set_thetagrids(np.linspace(0, 360, N, endpoint=False), tags)  # 设置角度标签

ax.set_ylim([0, 1])  # 设置数据范围

ax.grid(True)  # 显示网格线

ax.legend(loc='upper right')  # 显示图例

最后,使用plt.show()方法显示雷达图:

plt.show()

以上代码将绘制一个带有示例数据的雷达图。其中,np.linspace()函数用于生成一组数值,表示从0到2π之间的等间隔的角度,用于绘制雷达图的每一段。ax.plot()方法用于绘制雷达图的轮廓,其中'o-'表示使用圆点和线连接数据点。ax.fill()方法用于填充雷达图的闭合区域。ax.set_thetagrids()方法用于设置角度标签,np.linspace()函数用于生成一组数值,表示从0到360之间的等间隔的角度。ax.set_ylim()方法用于设置数据范围。最后,使用ax.grid()方法显示网格线,使用ax.legend()方法显示图例。

综上所述,我们可以利用matplotlib.axesAxes()方法绘制一个带有示例数据的雷达图。使用此方法可以自定义雷达图的各个属性和标签,实现更加个性化的数据可视化。