利用kmeans和matplotlib绘制热力图的代码实现
时间: 2023-08-17 14:39:20 浏览: 109
以下是利用kmeans和matplotlib绘制热力图的Python代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成随机数据
np.random.seed(0)
x = np.random.randn(100)
y = np.random.randn(100)
# 将数据聚类为10个簇
kmeans = KMeans(n_clusters=10, random_state=0).fit(np.vstack([x, y]).T)
# 统计每个簇内的数据点数量
counts = np.zeros((10,))
for i in range(10):
counts[i] = np.sum(kmeans.labels_ == i)
# 绘制热力图
plt.scatter(x, y, c=kmeans.labels_, s=100, cmap='viridis')
plt.colorbar()
# 在每个簇的中心位置上标注数据点数量
centers = kmeans.cluster_centers_
for i in range(10):
plt.text(centers[i, 0], centers[i, 1], int(counts[i]), ha='center', va='center')
plt.show()
```
上述代码首先生成了随机数据,然后利用KMeans算法将数据聚类为10个簇,并统计了每个簇内的数据点数量。最后利用matplotlib库绘制了热力图,并在每个簇的中心位置上标注了数据点数量。
阅读全文