如何使用 matplotlib 指定颜色? [复制]

Posted

技术标签:

【中文标题】如何使用 matplotlib 指定颜色? [复制]【英文标题】:How to specify colors using matplotlib? [duplicate] 【发布时间】:2021-10-30 03:54:25 【问题描述】:

我有一组数据,我想按年份对它们进行聚类!最后我想显示每种颜色与哪一年有关?这是我的代码:

col = [x[0].get_year() for x in vectors]
plt.scatter(X_train_pca[:, 0], X_train_pca[:, 1], c=col)
n=[x[0].title for x in vectors]
for i, txt in enumerate(n):
    plt.annotate(_(txt), (x[i], y[i]))
plt.title("Poem Clustering by year")
plt.savefig(newpath+"Clustering_by_year"+".png", bbox_inches='tight')
print("DONE!")

这就是我的意思!我想要类似的东西。 我不知道如何搜索这个,我尝试了,但我找不到任何相关的东西。

【问题讨论】:

【参考方案1】:

改编自here的答案,我们可以使用seaborn来做到这一点。 seaborn 中的大多数地块都有一个 hue 参数,这就是您要寻找的。在这种情况下,我将色调设置为 species,在您的情况下,它将是年份或任何您的列名。

当然,在生成标签的代码的最后部分,您需要使用正确的变量进行更新。

import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

df_iris=sns.load_dataset("iris") 

plt.figure(figsize=(20,10))
p1 = sns.scatterplot(x='sepal_length', # Horizontal axis
       y='sepal_width', # Vertical axis
       data=df_iris, # Data source
       legend=True,
       hue='species')  

for line in range(0,df_iris.shape[0]):
     p1.text(df_iris.sepal_length[line]+0.01, df_iris.sepal_width[line], 
     df_iris.species[line], horizontalalignment='left', 
     size='medium', color='black', weight='semibold')

【讨论】:

以上是关于如何使用 matplotlib 指定颜色? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将颜色作为第三维添加到 matplotlib 散点图? [复制]

如何更改 matplotlib 中绘图的轴、刻度和标签的颜色

使用Matplotlib绘制数据图

指定散点图中每个点的颜色(matplotlib)

Python使用matplotlib函数subplot可视化多个不同颜色的折线图为指定的子图添加图例信息(legend)

在 Seaborn / Matplotlib 的小提琴图上指定高于和低于中位数的颜色