【问题标题】:How do I change the order of pie chart slices in Python如何在 Python 中更改饼图切片的顺序
【发布时间】:2021-05-20 06:07:00
【问题描述】:

我想更改饼图中切片的顺序。目前,切片按降序排列。我希望图表的切片按以下顺序排列: 是 > 有时 > 大多数时候 > 不

我正在使用以下代码:

colors = [ '#99f3bd', '#fbaccc','#a8df65', '#ff7b54']
fig, ax = plt.subplots(figsize=(5,15))
ax.set_title('Treatment Group', fontsize=25, fontname="Times New Roman Bold")
ax = df['q6_t'].value_counts(normalize=True).plot.pie(autopct='%1.0f%%', colors = colors)
ax.set_ylabel("")
plt.savefig('q6_t.png', bbox_inches = 'tight', transparent=True) 

【问题讨论】:

    标签: python pandas matplotlib data-analysis


    【解决方案1】:

    我很惊讶我没有找到这个可能是常见问题的重复项。如果您想要饼图中的特定顺序,则必须对您的值计数生成的熊猫系列进行排序:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    #corresponding color-label pairs
    colors = ['#99f3bd', '#fbaccc',   '#a8df65',           '#ff7b54']
    labels = ["Yes",     "Sometimes", "Most of the times", "No"]
    
    #test data generation
    import numpy as np
    n=10
    np.random.seed(1234)
    df=pd.DataFrame({"A": np.random.random(n), "q6_t": np.random.choice(labels, n)})
    #print(df)
    
    
    fig, ax = plt.subplots(figsize=(8, 8))
    ax.set_title('Treatment Group', fontsize=25, fontname="Times New Roman Bold")
    #reindex(labels) sorts the index of the value counts according to the list labels
    ax = df['q6_t'].value_counts(normalize=True).reindex(labels).plot.pie(autopct='%1.0f%%', colors = colors)
    
    ax.set_ylabel("")
    plt.show()
    

    样本输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多