画出特征雷达图,代码接KMeans_cluster.py
时间: 2024-03-15 13:44:09 浏览: 74
Python中pygal绘制雷达图代码分享
好的,以下是根据 KMeans_cluster.py 中的数据绘制特征雷达图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from math import pi
# 从 KMeans_cluster.py 中获取数据
data = [[ 0.57, 0.84, 0.96, 0.34, 0.68],
[ 0.94, 0.67, 0.48, 0.91, 0.12],
[ 0.12, 0.36, 0.61, 0.19, 0.97],
[ 0.18, 0.91, 0.20, 0.72, 0.48],
[ 0.43, 0.25, 0.40, 0.48, 0.85]]
# 特征名称,这里使用 A、B、C、D、E 代替
features = ['A', 'B', 'C', 'D', 'E']
# 将数据转换为绘制雷达图所需的格式
# 雷达图需要将第一个特征与最后一个特征相连,因此需要将最后一个特征放到第一个位置
data = np.concatenate((data, data[:, 0:1]), axis=1)
features = np.concatenate((features, features[0:1]))
# 计算角度
angles = np.linspace(0, 2 * np.pi, len(features), endpoint=False)
# 将角度转换为弧度
angles = angles.astype(np.float16)
# 创建一个极坐标子图
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
# 画出雷达图
for i in range(len(data)):
values = data[i]
# 将第一个值与最后一个值相连
values = np.concatenate((values, values[0:1]))
# 画出一条折线图
ax.plot(angles, values, linewidth=2, label=f'Cluster {i+1}')
# 填充颜色
ax.fill(angles, values, alpha=0.25)
# 设置雷达图的标签
ax.set_thetagrids(angles * 180 / np.pi, features)
# 添加标题和图例
plt.title('Feature Radar Chart')
plt.legend(loc='best')
# 显示图形
plt.show()
```
这段代码中,我们首先获取了 KMeans_cluster.py 中的数据,然后将数据转换为绘制雷达图所需的格式。接着,我们计算了每个特征对应的角度,并创建了一个极坐标子图。然后,我们使用 for 循环遍历每个簇的数据,分别画出一条折线图,并填充颜色。最后,我们设置了雷达图的标签、添加了标题和图例,最终显示图形。
阅读全文