如何在图上绘制下面计算的质心值?
import numpy as np, matplotlib.pyplot as plt
from scipy.cluster.vq import kmeans, vq
data = np.array(np.random.rand(100))
plt.plot(data, 'ob')
centroids, variances= kmeans(data,3,10)
indices, distances= vq(data,centroids)
print (centroids)
[ 0.82847854 0.49085422 0.18256191]
plt.show()
答案 0 :(得分:1)
您可以使用表示质心的水平线进行绘图:
plt.plot([0, len(data)], [centroids[0]]*2, lw=1.)
plt.plot([0, len(data)], [centroids[1]]*2, lw=1.)
plt.plot([0, len(data)], [centroids[2]]*2, lw=1.)
编辑:或者按照@nordev的建议:
plt.hlines(centroids, xmin=0, xmax=len(data), lw=1.)