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 に答える