存储"for loop"中的百分比值数组以创建饼图



代码如下:

import matplotlib.pyplot as plt
students = [6,3,1,8,2]
a=[]
for s in students:
    a.append((s/20)*100)
values =[]
for b in a:
    values.append(b)
print(values)
values = [30, 15, 5 , 40, 10]  # Need to be the array of % values. Want to grab values from the print values
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral', 'red']
plt.pie(values, labels=[6,3,1,8,2], colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)

我要做的是从名为"学生"的数组中读取值,并使用这些数字来获得每个数字的百分比值。如果我们把数组中的所有数字加起来,学生的总数是20。所以,举个例子:如果我们想知道学生中有多少百分比是1,那么我在第一个for循环中设置了它,它取这个数字,如果我们的情况是1,我们把它除以20,再乘以100得到%。输出为:

30.0
15.0
5.0
40.0
10.0

此外,现在我想将这些值存储在一个单独的数组中,以便在绘制饼状图时可以使用所有这些%值。然而,我一直得到一个错误,我不知道如何解决它。错误是:

TypeError: 'float' object is not iterable

请帮助我,这样我就可以得到一个与下图相同或相似的图形。我用excel创建的

http://oi57.tinypic.com/14ch2m0.jpg

Thanks for the help

这一行失败了:

for b in a:

我怀疑你想让a是一个列表,但它是上面计算的一个数字:

a = (s/20)*100

所以你可能想要

a=[]
for s in students:
    a.append((s/20)*100)

最新更新