我正试图解决一个聚类问题,我需要为我的聚类绘制一个散点图。在
%matplotlib inline
import matplotlib.pyplot as plt
df = pd.merge(dataframe,actual_cluster)
plt.scatter(df['x'], df['y'], c=df['cluster'])
plt.legend()
plt.show()
df['cluster'] is the actual cluster number. So I want that to be my color code.
它给我看了一个情节,但没有告诉我传说。它也不会给我错误。在
我做错什么了吗?在
编辑:
生成一些随机数据:
绘图:
^{pr2}$结果:
说明:
不需要过多地研究matplotlib内部的细节,一次绘制一个集群就可以解决这个问题。 更具体地说,
ax.scatter()
返回一个PathCollection
对象,我们在这里显式地丢弃了它,但它似乎在内部传递给某种图例处理程序。一次绘制所有簇只生成一个PathCollection
/label对,而一次绘制一个簇生成n_clusters
PathCollection
/label对。您可以通过调用ax.get_legend_handles_labels()
来查看这些对象,它返回如下内容:所以实际上
ax.legend()
相当于ax.legend(*ax.get_legend_handles_labels())
。在注意事项:
如果使用python2,请确保
i/n_clusters
是float
省略
fig, ax = plt.subplots()
而改用plt.<method>
ofax.<method>
工作正常,但我总是喜欢显式地 指定我正在使用的Axes
对象,而不是隐式使用 “当前轴”(plt.gca()
)。旧的简单解决方案
如果您对colorbar(而不是离散值标签)没有问题,可以使用Pandas内置的Matplotlib功能:
相关问题 更多 >
编程相关推荐