【问题标题】:Different colors for each label in my pie chart饼图中每个标签的不同颜色
【发布时间】:2019-02-07 00:27:28
【问题描述】:

我知道可以在 plt.pie() 命令中使用 textprops = dict(color = 'white') 更改所有标签颜色,但是是否可以让每个标签都有自己的颜色?我尝试了以下方法:

colorlist = ['w','k','r','g']    
textprops = [dict(color = c) for c in colorlist]

导致错误:

AttributeError: 'list' 对象没有属性 'setdefault'

textprops = dict(color = colorlist)

这导致一个完全没有标签的情节,最后我尝试将我的 plt.pie() 调用放入 for 循环,但即使是最简单的版本也不起作用。

sizes = [50,50]
plt.figure(figsize=(15,15))
for i in range(len(sizes)):
    s = sizes[i]
    plt.pie(s)
    plt.axis('equal')
    plt.show()

这给出了错误:

TypeError: len() of unsized object

我不知道还能尝试什么,我没有想法。

【问题讨论】:

    标签: matplotlib pie-chart


    【解决方案1】:

    您可以遍历pie 返回的文本标签,并分别为每个标签着色。

    import matplotlib.pyplot as plt
    
    labels = ["AAA", "BBB", "CCC", "DDD"]
    colorlist = ['crimson','k','r','gold']    
    sizes = [10,20,20,40]
    
    plt.figure()
    
    wedges, texts = plt.pie(sizes, labels=labels)
    for text, color in zip(texts, colorlist):
        text.set_color(color)
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      相关资源
      最近更新 更多