簡體   English   中英

散布 plot 有 20 多個標簽和不同的 colors

[英]Scatter plot with more than 20 labels and different colors

我想要 plot 具有 40 個集群的集群結果。 我有這段代碼:

plt.figure(figsize=(14,10))
for i in labels:
    plt.scatter(df.iloc[cluster == i , 0] ,
                df.iloc[cluster == i , 1], label = i, alpha= 0.8)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5),ncol = 2)
plt.show()

結果是: 在此處輸入圖像描述 如您所見,有 20 個 colors 在重復。 如何為這些集群分配 40 個不同的 colors?

我看過這個鏈接: Matplotlib color according to class labels

但這並沒有解決我的問題。

您應該能夠使用散點圖function 的c參數來指定顏色,如下所示:

代碼:

plt.figure(figsize=(14,10))
for i in labels:
    plt.scatter(df.iloc[cluster == i , 0] , df.iloc[cluster == i , 1], label = i, alpha= 0.8, c=i, cmap='viridis')
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5),ncol = 2)
plt.show()

或者,您可以像這樣指定自己的顏色列表:

colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet', 'brown', 'pink', 'gray', 'olive', 'cyan', 'navy', 'teal', 'maroon', 'silver', 'tan', 'gold', 'purple', 'moccasin', 'bisque', 'wheat', 'peachpuff', 'navajowhite', 'salmon', 'crimson', 'palevioletred', 'darksalmon', 'lightcoral', 'hotpink', 'palegoldenrod', 'plum', 'darkkhaki', 'orchid', 'thistle', 'lightgray', 'lightgreen', 'lightblue', 'lightskyblue', 'lightyellow', 'lavender', 'linen']

plt.figure(figsize=(14,10))
for i in labels:
    plt.scatter(df.iloc[cluster == i , 0] , df.iloc[cluster == i , 1], label = i, alpha= 0.8, color=colors[i])
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5),ncol = 2)
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM