我的饼图中每个标签的颜色不同
Different colors for each label in my pie chart
我知道可以在 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
我不知道还能尝试什么,我没主意了。
您可以遍历 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()
我知道可以在 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
我不知道还能尝试什么,我没主意了。
您可以遍历 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()