【问题标题】:Create a pie with matplotlib使用 matplotlib 创建一个饼图
【发布时间】:2018-05-12 14:04:40
【问题描述】:

你好,我有这个 Python 代码:

import matplotlib.pyplot as plt

total_a = 0.004095232
total_b = 0.05075945
total_c = 0.005425
total_d = 0.022948572
total_e = 0.015012

slices = [total_a,total_b,total_c,total_d,total_e]
activities = ['a', 'b', 'c', 'd','e']
cols = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'orangered']
plt.pie(slices,labels=activities,autopct='%1.1f%%',colors=cols,startangle=140,shadow=True)
plt.show()

但是当我执行这段代码时我得到了这个:

我不明白为什么我没有得到一个完整的馅饼? 感谢您的帮助!

【问题讨论】:

    标签: python python-3.x python-2.7 matplotlib pie-chart


    【解决方案1】:

    根据下面 ImportanceOfBeingErnest 的回答以及对 documentation 的解释,plt.py 接受一个数组输入,只要元素的总和大于 1,它就会为您标准化值。

    由于您的值总和小于 1,因此数组未标准化。为了使自己标准化,您应该使用以下行将每个元素除以列表的最大值:

    slices = [aSlice/max(slices) for aSlice in slices]
    

    我会把它放在你的程序中:

    import matplotlib.pyplot as plt
    
    total_a = 0.004095232
    total_b = 0.05075945
    total_c = 0.005425
    total_d = 0.022948572
    total_e = 0.015012
    
    
    slices = [total_a,total_b,total_c,total_d,total_e]
    slices = [aSlice/max(slices) for aSlice in slices]
    
    activities = ['a', 'b', 'c', 'd','e']
    cols = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'orangered']
    plt.pie(slices,labels=activities,autopct='%1.1f%%',colors=cols,startangle=140,shadow=True)
    plt.show()
    

    对我来说,这会产生一个像这样的图表:

    【讨论】:

      【解决方案2】:

      pie(x, ...) 的 x 参数区分两种情况。作为the documentation states:

      制作数组 x 的饼图。每个楔形的小数面积由 x/sum(x) 给出。如果 sum(x)

      在问题的情况下,总和确实小于sum(x) < 1。一个简单的解决方法可能是将输入数组乘以某个大数或除以它的总和。

      slices = np.array([total_a,total_b,total_c,total_d,total_e])*100
      

      或

      slices = np.array([total_a,total_b,total_c,total_d,total_e])
      slices /= slices.sum() 
      

      【讨论】:

        猜你喜欢
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多