我一直试图将存储在列表中的值绘制为dict值,但是我陷入了困境。以下是字典结构和我的代码的示例,这些代码可遍历模具键和值:
import matplotlib.pyplot as plt
mydict = {
"A":
[1.0, 0.75, 0.0, 0.25, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.5],
"B":
[1.0, 0.0, 0.0, 0.0, 0.5, 0.6666666666666666, 0.0],
"C":
[0.6666666666666666, 0.3333333333333333, 0.75, 0.25, 0.0, -1, 0.5, 0.75, 0.0, 0.0, 0.0],
"D":
[0.0, 0.0, 0.0, 0.2]}
for k, v in mydict.iteritems():
plt.title('Some data for unit: ' + k)
plt.xlabel('Number of data points')
plt.ylabel('Some unit')
plt.figure(k)
xs = range(0, len(v))
ys = v
plt.plot(xs, ys, '-.')
plt.show
我是一个相对的初学者,我可能错过了一些基本的知识和必不可少的知识,但总是会发生以下情况:第一个情节空着,带有单位A的标题,最后一个没有标题或标签。所以我猜想它模拟了一个空的A单元图,在第二个图单元中模拟了单元A的数据,在第三个图中模拟了单元B的数据,依此类推,直到第五个图,我都没想到会出现,因为我的字典只有四个键值对。
我在这里想念什么?香港专业教育学院尝试了几个小时,只是无法提出解决方案。
非常感谢!
答案 0 :(得分:1)
您可以通过赋予标题来创建新图。之后,您调用plt.figure(k)
,创建另一个新图。这是将在其中绘制当前循环的数据的绘图。在下一个循环中,为 this 绘图赋予一个新标题。这就是为什么一切似乎都改变了的原因。
将plt.figure(k)
移动到循环的顶部。如果您不关心图形的编号,也可以直接致电plt.figure()
,而在大多数情况下,您不需要这样做。
也plt.show
只是引用该函数,但您需要调用它:plt.show()
答案 1 :(得分:1)
您要创建图形plt.figure()
之前,为其指定标题。然后,您需要确定是要一次显示所有数字(在循环外部{plt.show()
)还是要一次显示所有数字(在循环内部)。 但是,请确保实际呼叫 plt.show()
-注意()
。
for k, v in mydict.iteritems():
plt.figure(k)
plt.title('Some data for unit: ' + k)
plt.xlabel('Number of data points')
plt.ylabel('Some unit')
xs = range(0, len(v))
ys = v
plt.plot(xs, ys, '-.')
plt.show()