python - 使用 matplotlib.pyplot 绘制多个字典值
问题描述
我一直在尝试将存储在列表中的值绘制为 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 只有四个键值对。
我在这里想念什么?我已经尝试了几个小时,但无法提出解决方案。
非常感谢!
解决方案
您通过给出标题来创建一个新的情节。之后,您调用plt.figure(k)
,创建另一个新情节。这是当前循环的数据将被绘制的图。在下一个循环中,您给这个图一个新的标题。这就是为什么一切似乎都发生了变化。
移动plt.figure(k)
到循环的顶部。plt.figure()
如果您不关心数字的号码,您也可以打电话,在大多数情况下,您不关心。
也plt.show
只是指函数,但你需要调用它:plt.show()
推荐阅读
- javascript - 什么是 es6 中的函数作用域变量(var)和块作用域变量?
- sql - Oracle 从 3 列创建数据透视表
- docker - 如何将 docker 映像从一个 TeamCity 构建传递到另一个构建?
- python - 理解keras中conv2d层的输出形状
- php - 注册时,在 3 个表中插入数据 LARAVEL
- linux - 如何通过脚本中的双引号 echo 命令传递单引号以添加 cron 作业
- python - 使用 SQLAlchemy OrderingList 更新现有对象的顺序
- ios - 触发单元格的IBAction时如何更新UITableViewController的信息?
- javascript - 将 CSV 转换为 JSON
- android - 如何使用 onClick() 方法在 Recyclerview 中设置 ImageResource()?