用Matplotlib Python绘图

时间:2015-11-15 18:12:04

标签: python matplotlib python-3.4

我想制作一个功能,其中包含一个成绩列表,并将每个成绩分为五个类别:
[0,60],[60,70],[70,80],[80,90],[90,100]

然后使用matplotlib制作饼图和直方图。

我不确定从哪里开始。

2 个答案:

答案 0 :(得分:1)

始终从gallery开始。在那里,您会找到example pie chartexample histogram

答案 1 :(得分:0)

首先定义一个函数。 假设您有名为x的成绩列表:

x = [5, 12, 29, 30, 60, 70, 80, 90, 36, 42, 47, 50, 55, 59, 63, 68, 75, 80, 88, 99, 100]

你将定义一个函数f(x)

def f(object):
nullsix = []
sixseven = []
seveneight = []      
eightnine = []
nineten = []
for value in object:
    if value >= 0 and value < 60:
        nullsix.append(value)
    elif value < 70:
        sixseven.append(value)
    elif value < 80:
        seveneight.append(value)
    elif value < 90:
        eightnine.append(value)
    else:
        nineten.append(value)
print(nullsix)
print(sixseven)
print(seveneight)
print(eightnine)
print(nineten)

当你调用函数f(x)时,结果将是:

[5, 12, 29, 30, 36, 42, 47, 50, 55, 59]
[60, 63, 68]
[70, 75]
[80, 80, 88]
[90, 99, 100]

要使用matplotlib函数,您应该在函数中导入它并定义标签,大小,以及是否要偏移切片。在这里,试试这个:

def f(object):
import matplotlib.pyplot as plt
nullsix = []
sixseven = []
seveneight = []
eightnine = []
nineten = []
for value in object:
    if value >= 0 and value < 60:
        nullsix.append(value)
    elif value < 70:
        sixseven.append(value)
    elif value < 80:
        seveneight.append(value)
    elif value < 90:
        eightnine.append(value)
    else:
        nineten.append(value)
a = int(len(nullsix))
b = int(len(sixseven))
c = int(len(seveneight))
d = int(len(eightnine))
e = int(len(nineten))
labels = '90-100', '80-90', '70-80', '60-70', '0-60'
sizes = [e, b, c, d, a]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral', 'orange']
explode = (0.1, 0, 0, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
    autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')
plt.show()

告诉我它是否有效,我没有安装matplotlib,只是按照演示。