【发布时间】:2021-02-07 03:40:53
【问题描述】:
我有一个分为 27 个集群的数据框。为了仅在一个图中绘制所有这些集群,我使用以下 for 循环:
list_of_clusters= list(set(klabels))
fig=plt.figure(figsize=(13,9),frameon=True,facecolor='lightgrey', edgecolor='black')
ax = fig.add_subplot(1,1,1)
plt.axis()
plt.xlim([-2.5, 0.2])
plt.ylim([-0.7, 3.3])
plt.xlabel("log PhiZ")
plt.ylabel("log RQI")
for i in list_of_clusters:
plt.scatter(
logphizlogrqi[klabels == i, 0], logphizlogrqi[klabels == i, 1],
s=10, cmap='hsv',
marker='8',
label=i+1
)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.legend(scatterpoints=1, loc='center left',bbox_to_anchor=(-0.4, 0.5))
plt.grid()
plt.show()
但生成的图表不止一次使用每种颜色,如下图所示:
理想情况下,我正在寻找的图表应该如下所示(虽然颜色彼此接近,但它们只使用一次):
如果您能帮我解决我的问题,我将不胜感激
【问题讨论】:
-
您可以查看一些现有的colormaps,看看它们是否适用于您的情况。
-
@hilberts_drinking_problem 我有。所有这些都导致相同的情节。我尝试过定性、杂项、发散等,但没有一个奏效。
-
@r-beginners 不幸的是不起作用。我收到以下错误:(AttributeError:'AxesSubplot' 对象没有属性'set_color')。其他答案也无法正常工作
-
我通常使用 like this solution 和非重复的颜色图。但总的来说,27 种易于区分的独特颜色是雄心勃勃的。
标签: python pandas numpy matplotlib k-means