如何在饼图matplotlib上生成更多颜色

use*_*937 11 python matplotlib pie-chart

我在我的图表中显示了超过40个项目.我只有10种颜色反复显示在图表上.如何生成更多颜色.

plt.pie(f,labels=labels,autopct='%1.1f%%', startangle=90,shadow=True)
Run Code Online (Sandbox Code Playgroud)

我应该添加"color = colors",其中颜色是无限生成的?

CT *_*Zhu 27

你需要colors参数,旁边你可以使用一些颜色图cm.

>>> import matplotlib.pyplot as plt
>>> from matplotlib import cm
>>> import numpy as np
>>> a=np.random.random(40)
>>> cs=cm.Set1(np.arange(40)/40.)
>>> f=plt.figure()
>>> ax=f.add_subplot(111, aspect='equal')
>>> p=plt.pie(a, colors=cs)
>>> plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

除了使用colormaps之外,还要考虑使用.set_color_cycle()方法.看这篇文章:在matplotlib中绘制不同的颜色

  • 当我逐字运行你的代码时,我得到了很多重复的颜色。[这是一张图片](https://i.stack.imgur.com/KQGdU.png) 输出的饼图。您知道我如何创建一个没有重复颜色的饼图,同时又不将这些颜色组合在一起吗?(因为我不希望饼图看起来像彩虹;我希望颜色的顺序是随机的。)谢谢。 (3认同)

小智 5

我希望这个答案会有用。检查此链接, Matplotlib 支持颜色。您可以从中随机选择 40 种颜色并在饼图中使用。

mcolors.TABLEAU_COLORS
mcolors.BASE_COLORS
mcolors.CSS4_COLORS
Run Code Online (Sandbox Code Playgroud)

样本

import random
import matplotlib.colors as mcolors
colors = random.choices(list(mcolors.CSS4_COLORS.values()),k = number_of_colors)
Run Code Online (Sandbox Code Playgroud)