首页 > 解决方案 > 从多个 json 文件为 matplotlib 创建 python 字典

问题描述

我正在尝试将具有相同结构的多个 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 文件,遍历它们,并为每个文件创建一个字典,其中会有上面指定的数据?

谢谢!

标签: pythonjsonmatplotlib

解决方案


你在寻找类似的东西

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()

在此处输入图像描述


推荐阅读