Python:无法绘制多个图形

时间:2014-11-23 17:14:42

标签: python graph

我正在尝试使用for循环和主key ="business_id"绘制多个图形。它是一个json文件。

这是我的代码: 它仅绘制第一个图形,即仅针对第一个业务ID而不是剩余的id。我怎样才能使它适用于所有ID

data=f.read()
jsondata=json.loads(data)
z=[]
for row in jsondata['rows']:
    id=row['business_id']
    print id

for i in id:

    for row in jsondata['rows']:
    y= row['checkin_info']
    x=int(y['one p.m'])
    x2=int(y['two p.m'])
    x3=int(y['three p.m'])
    x4=int(y['four p.m'])
    x5=int(y['five p.m'])
    x6=int(y['six p.m'])
    x7=int(y['seven p.m'])
    x8=int(y['eight p.m'])
    x9=int(y['nine p.m'])
    x10=int(y['ten p.m'])
    x11=int(y['eleven p.m'])
    x12=int(y['twelve p.m'])
    z.append(x)
    z.append(x2)
    z.append(x3)
    z.append(x4)
    z.append(x5)
    z.append(x6)
    z.append(x7)
    z.append(x8)
    z.append(x9)
    z.append(x10)
    z.append(x11)
    z.append(x12)


    time_slots=["one p.m","two p.m","three p.m","four p.m","five 
        p.m","six p.m","seven p.m","eight p.m","nine   
        p.m","ten.pm","eleven p.m","twelve p.m"]
    pylab.figure(1)
    x = range(12)
    pylab.xticks(x, time_slots)
    pylab.plot(x,z,"g")

    pylab.show()

1 个答案:

答案 0 :(得分:0)

不幸的是,你的json文件结构对我来说并不清楚。也许你错过了代码中的一些缩进级别。因此,我建议几种解决方案。如果您必须浏览所有ID,那么最好将ID存储在列表中:

ids=[]
for row in jsondata['rows']:
    id=row['business_id']
    ids.append(id)
    print id

第二个选项:你的数字必须编号,show()函数必须在for循环之外

for i, id in enumerate(ids):
    ...
    pylab.figure(i)
    ...
pylab.show()
相关问题