使用matplotlib绘制现有图上的质心值

时间:2013-11-24 15:58:17

标签: python numpy matplotlib plot scipy

如何在图上绘制下面计算的质心值?

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()

1 个答案:

答案 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.)

enter image description here