【问题标题】:Plotting over multiple dictionary values using matplotlib.pyplot使用 matplotlib.pyplot 绘制多个字典值
【发布时间】:2019-05-09 06:37:46
【问题描述】:

我一直在尝试将存储在列表中的值绘制为 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 等等,直到第五个地块,我没想到会在那里,考虑到我的 dict 只有四个键值对。

我在这里缺少什么?我已经尝试了几个小时,但无法提出解决方案。

非常感谢!

【问题讨论】:

    标签: python python-2.7 matplotlib


    【解决方案1】:

    你通过给一个标题来创建一个新的情节。之后,您调用plt.figure(k),创建另一个新情节。这是当前循环的数据将在其中绘制的图。在下一个循环中,您给 this 绘制一个新标题。这就是为什么一切似乎都发生了变化。

    plt.figure(k) 移动到循环的顶部。如果您不关心人物的编号,也可以直接致电plt.figure(),而大多数情况下您并不关心。

    还有plt.show只是指函数,但你需要调用它:plt.show()

    【讨论】:

    • 谢谢!正如我所说,我缺少一些必需品。我一定不会再犯这个错误了。
    【解决方案2】:

    你想创建图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()
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 2017-03-12
      • 2022-11-27
      • 1970-01-01
      相关资源
      最近更新 更多