绘制字典中列表的列表中的特定项?



我一直在尝试在字典中绘制my-list的特定项,但该图没有显示任何内容。下面是字典和列表的例子:

mdict:{
'week 1': [1,1,32],[1,2,43],[1,3,7],..[2,1,4],[2,2,6],[2,3,10],
'week 2': [1,1,25],[1,2,36],[1,3,65],..[2,1,33],[2,2,45],[2,3,15],
...: ...
'week n': [1,1,44],[1,2,87,[1,3,32],..[2,1,11],[2,2,5],[2,3,55]

}

我需要从每个键绘制列表的第三个项,它们具有相同的前两个元素。例如,"1,1,32">1, 1,251, 1, 44从第1周,第2周开始,应该绘制。

我尝试了下面的代码,但是没有显示任何东西:

for key in mdict.keys():
items, values = zip(pdict[key][0][1:3])  # Unpack
plt.plot(items, values, label=key)

我是一个大家伙,肯定我错过了一些迭代

根据你的回答,我做了一个快速的回答(我相信有些人可以改进它)。希望这是你想要的,如果不是,也许你可以编辑它,因为你认为合适。

import matplotlib.pyplot as plt
from matplotlib.pyplot import cm
import numpy as np

mdict = {
'week 1': [[1,1,32],[1,2,43],[1,3,7],[2,1,4],[2,2,6],[2,3,10]],
'week 2': [[1,1,25],[1,2,36],[1,3,65],[2,1,33],[2,2,45],[2,3,15]]
}
color=iter(cm.rainbow(np.linspace(0,1,len(mdict.keys()))))
for key in mdict.keys():
c=next(color) #Change colour for each weeks data
#Initialise empty lists for each week
items = []
values = []

for l in mdict[key]: #Loop through lists within each week

if l[0] == l[1]: #If first two elements match, append necessary elements
items.append(l[0])
values.append(l[2])

plt.plot(items, values, 'o', c=c, label=key) #Plot all data for each week

plt.legend(loc="upper left")

最新更新