如何基于标签/唯一类创建图例颜色?

时间:2019-06-07 12:41:11

标签: python matplotlib

我正在为7种不同的样品制作饼图。为每个样本制作一张饼图。

我总共有207个唯一类的列表(每行是1个类),对于每个样本,我想在饼图上绘制前8个类。因此,每个样本的数据集由8个不同的“类别”和一个数值组成。为了绘制饼图,我提取了该样本具有最高数值的8个类。样本之间的某些类别重叠,而其他类别仅在少数样本中位于前8位。此类饼图的图像(图例标签为类):

pie chart

现在,对于我制作的每个饼图,我都使用相同的颜色代码:

classgraph, texts=plt.pie(df["Col A"],colors=("#FFA500","#6A5ACD","#AE0C0C","#1E90FF","#228B22","#B4B9B3","#7D7D7C","000000")) 
plt.title(".......",fontsize=20)
plt.legend(classgraph,df["Col A"],bbox_to_anchor=(0.9,0.87), fontsize=14)
plt.show()

我为7个不同的饼图中的每个饼图使用此代码(样本之间的df会发生变化),因此,不管类别如何,每个饼图都使用相同的8种颜色。因此,具有最高数值的类别始终使用颜色代码#FFA500,而不管它是哪个类别。如果类别1在样本1中具有最高值,则其颜色代码为FFA500,但是如果类别3在样本2中具有最高值,则其颜色代码为FFA500。比较饼图时,这可能会造成混淆。

但是,我希望每个类都有独特的颜色。因此,类别1的所有饼形图都具有颜色X,而不管其数值如何。我可以手动完成此操作,但这很繁琐。有没有简单的方法可以在我的代码中直接实现以创建图形呢?我想保留这种代码格式。

0 个答案:

没有答案