【问题标题】:Match coloring of slices for series of pandas pie charts熊猫系列饼图的切片颜色匹配
【发布时间】:2020-08-31 14:48:55
【问题描述】:

我有一个看起来像这样的熊猫数据框:

df = pd.DataFrame( {'Judge': {0: 1, 1: 1, 2: 1, 3: 2, 4: 2, 5: 2, 6: 3, 7: 3, 8: 3}, 'Category': {0: 'A', 1: 'B', 2: 'C', 3: 'A', 4: 'B', 5: 'C', 6: 'A', 7: 'B', 8: 'C'}, 'Rating': {0: 'Excellent', 1: 'Very Good', 2: 'Good', 3: 'Very Good', 4: 'Very Good', 5: 'Very Good', 6: 'Excellent', 7: 'Very Good', 8: 'Excellent'}} )

我正在绘制一个饼图来显示每个评委的评分,如下所示:

grouped = df.groupby('Judge')

for group in grouped:
    group[1].Rating.value_counts().plot(kind='pie', autopct="%1.1f%%")
    plt.legend(group[1].Rating.value_counts().index.values, loc="upper right")
    plt.title('Judge ' + str(group[0]))
    plt.axis('equal')
    plt.ylabel('')
    plt.tight_layout()
    plt.show()

不幸的是,每个评委的切片颜色都不同。例如,法官 1 的“优秀”部分是蓝色的,而法官 2 的“非常好”部分是蓝色的。

如何在绘图之间强制执行切片颜色的一致性?

【问题讨论】:

    标签: pandas matplotlib pandas-groupby


    【解决方案1】:

    我认为你可以拆散并绘制:

    axes = (df.groupby('Judge').Rating.value_counts()
       .unstack('Judge')
       .plot.pie(subplots=True, figsize=(6,6), layout=(2,2))
    )
    
    # do some thing with the axes
    for ax in axes.ravel():
        pass
    

    输出:

    【讨论】:

    • 非常有用!但是既然它不再是循环,我将如何添加标题并设置子图的图例位置?
    • 上述命令返回轴实例的列表(列表)。您可以根据需要分配和修改轴。查看更新。
    猜你喜欢
    • 2019-01-22
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多