【发布时间】:2021-01-26 15:52:45
【问题描述】:
我正在进行聚类,并尝试使用matplotlib的散点图功能绘制结果。
一个虚拟数据集是:
x = [48.959 49.758 49.887 50.593 50.683 ]
y = [122.310 121.29 120.525 120.252 119.509]
z = [136.993 133.128 143.710 129.088 139.860]
我正在使用以下代码绘制 x,y 并使用 z 作为颜色轴
plt.scatter(
x=x, y=y, c=z, label="CO2 Emissions Saved Cumulative", cmap=cm1)
Here is how it looks for the entire data
现在,我在我的数据集上执行了 K 均值聚类并找到了三个聚类。例如
[0 0 0 0 0 2 1 2 1 2 1 1 2 1 1 1 2 2 2 2 2]
我找到了以下解决方案,通过区分标记样式来绘制它们
ax.scatter(x[cluster == 0], y[cluster == 0], marker="*")
ax.scatter(x[cluster == 1], y[cluster == 1], marker="^")
ax.scatter(x[cluster == 2], y[cluster == 2], marker="s")
现在的问题是,使用这种方法,它会覆盖颜色轴,如本示例图像所示 cluster plot example
我怎样才能避免它不改变标记的颜色轴并且仍然使用默认的 z 值作为颜色轴。我希望该图仅根据集群数据更改标记样式。并且不会根据集群数据更改颜色。谢谢
【问题讨论】:
标签: python matplotlib plot cluster-analysis scatter-plot