繁体   English   中英

如何在 pandas 饼图中的 label 文本上设置不同的 colors

[英]How to set different colors on label text in pandas pie chart

我想根据部分的颜色为饼图的每个部分更改 label colors。 我发现 matplotlib 的问题(请参阅我的饼图中每个 label 的不同 colors )。 在我的情况下,我想使用 pandas 创建 plot。 有没有办法用 pandas 创建饼图,然后访问每个 label 的文本来更改颜色? 下面是我的简化代码示例,我想添加一个修改 colors 的部分,就像在上面的链接中所做的那样。

    index_data = ["AAA", "BBB", "CCC", "DDD"]
    data = [10,20,20,40]
    df = pd.DataFrame(data=data,index=index_data,columns=['col1'])

    color_list = ['#FF7800','#73B22D','#5F5D60','#803C00']

    fig, ax = plt.subplots(figsize=(9,9))

    df.plot(kind='pie', ax=ax, y=df.columns[0], legend=False, label='', colors=color_list, autopct='%1.1f%%', textprops={'fontsize': 17})

    # --- I want to change colors here --- #

    plt.show()

你有什么想法? 谢谢

您可以通过将df.plot()分配给ax来获取轴,然后从ax获取texts属性,如下所示:

index_data = ["AAA", "BBB", "CCC", "DDD"]
data = [10,20,20,40]
df = pd.DataFrame(data=data,index=index_data,columns=['col1'])

color_list = ['#FF7800','#73B22D','#5F5D60','#803C00']

fig, ax = plt.subplots(figsize=(9,9))

ax = df.plot(kind='pie', ax=ax, y=df.columns[0], legend=False, label='', colors=color_list, autopct='%1.1f%%', textprops={'fontsize': 17})

for text, color in zip(ax.texts, color_list):
    text.set_color(color)

plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM