0

我正在绘制一个上面有几条线的图表,并希望为每条线分配一个特定的标签,该标签将显示在图例中。

这为每一行提供了相同的标签:

import pylab as P
connection = pymongo.Connection("mongodb://localhost", safe=True)
db = connection.stuff
data = stuff.collection

for i in data.find():
    a=[]
    for element in i["counts"]:
        a.append(element["total"])
    P.plot(a, label="first line")
    P.legend()

P.show()

我有很多数据,我的文档是这样组织的:

{name:..., data:..., counts:[{total:...,...},{total:...,...}]}

如何为该代码片段中的每一行分配不同的标签?谢谢!

4

1 回答 1

1

如果你想从你的数据中获取你的属性,你可以做一些这样的事情:

for i in data.find():
    a=[]
    somename = i["name"][??]        #maybe you can extract your label from here ?
    for element in i["counts"]:
        a.append(element["total"])
    P.plot(a, label=somename)       # and use it here
P.legend()
P.show()

此外,您应该legend()在所有情节完成后只调用一次。

虽然与您的问题无关,但请注意您也可以通过这种方式构建您的列表:

for i in data.find():
    a = [element['total'] for element in i['counts']]
    P.plot(a, label=somename)
P.legend()
P.show() 
于 2013-01-04T13:01:15.763 回答