【问题标题】:Creating python dictionary for matplotlib from multiple json files从多个 json 文件为 matplotlib 创建 python 字典
【发布时间】:2021-03-11 14:09:30
【问题描述】:

我正在尝试将具有相同结构的多个 JSON 文件中的数据导入到单个 python 字典中,因此我可以将其绘制在 PY 中的折线图上。真正的问题是我是初学者,在这里只知道基础知识。 JSON 结构是这样的:

{
"ID": "123456",
"data": [
{ "xaxis" : 72, "yaxis" : 0 },
{ "xaxis" : 72.03814, "yaxis" : 0.00222175 },
{ "xaxis" : 72.08051, "yaxis" : 0.0044435},
{ "xaxis" : 72.12288, "yaxis" : 0.008887 },
{ "xaxis" : 72.16102, "yaxis" : 0.00666525 }
]
}

大约有 240 个这样的文件,我想做的是在字典中保存 xaxis 和 yaxis 数据,这样我就可以用它来绘图了。另外,我希望在每个文件中找到“ID”,以及每个文件中每个数据集的 ID。 这些线应该在所有文件的一张图上,所以一条线就是一个文件,所以图上有大约 240 条线。

非常感谢有关此主题的任何帮助!

编辑: 这里的实际问题似乎是我一个接一个地打开多个 json 文件,并将在其中找到的数据附加到字典中,我已经做到了手动创建字典- 写入数据,但我不知道从哪里开始打开多个文件,并为每个 json 文件创建一个字典。我找到了相反的解决方案(字典到 json),但不适用于这种情况。

我如何为代码提​​供一个路径,它可以在其中找到 json 文件,遍历它们,并为每个文件创建一个字典,其中会有上面指定的数据?

谢谢!

【问题讨论】:

标签: python json matplotlib


【解决方案1】:

你在寻找类似的东西

import matplotlib.pyplot as plt

d1  = {
"ID": "123456",
"data": [
{ "xaxis" : 72, "yaxis" : 0 },
{ "xaxis" : 72.03814, "yaxis" : 0.00222175 },
{ "xaxis" : 72.08051, "yaxis" : 0.0044435},
{ "xaxis" : 72.12288, "yaxis" : 0.008887 },
{ "xaxis" : 72.16102, "yaxis" : 0.00666525 }
]
}

d2  = {
"ID": "123456",
"data": [
{ "xaxis" : 72, "yaxis" : 0 },
{ "xaxis" : 72.03814, "yaxis" : 0.00622175 },
{ "xaxis" : 72.08051, "yaxis" : 0.0014435},
{ "xaxis" : 72.12288, "yaxis" : 0.003887 },
{ "xaxis" : 72.06102, "yaxis" : 0.00966525 }
]
}

for d in [d1, d2]:
    plt.plot([i['xaxis'] for i in d['data']], [i['yaxis'] for i in d['data']], label=d['ID'])

plt.legend()
plt.show()

【讨论】:

  • 是的,应该是这样的。但是由于有很多文件,我会尝试循环访问它们,并以某种方式将每个数据点附加到字典中。因此,d# 的数量应该与文件的数量一样多(在本例中约为 240)。此外,实际的 json 文件要长得多(大约 120 行),将所有 240 行复制粘贴到代码中并不是一件令人愉快的事情,尤其是这个任务可能稍后会再次出现。
  • for d in [d1, d2] 中,您可以将它们全部附加在[d1, d2, d3...] 中,例如创建列表l 并使用sppend
猜你喜欢
  • 2016-03-08
  • 1970-01-01
  • 2018-03-29
  • 2018-12-21
  • 2012-09-03
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多