使用matplotlib从JSON绘制数据的最简单方法是什么?

9

我有一些以json格式存储的数据,以下是其中的一部分:

"sell": [
           {
               "Rate": 0.001425,
               "Quantity": 537.27713514
           },
           {
               "Rate": 0.00142853,
               "Quantity": 6.59174681
           }
]

什么是最简单的方法访问费率和数量,以便我可以在Matplotlib中绘制它?我是否需要将其展平/规范化,或创建一个for循环来生成数组,或者可以使用pandas或其他库将其自动转换为适用于matplotlib的数据? 我知道Matplotlib可以通过几种方式处理输入。
plt.plot([1,2,3,4], [1,4,9,16])

plt.plot([1,1],[2,4],[3,9],[4,16])
1个回答

25

最简单的方法是使用 DataFrame 构造函数和 DataFrame.plot

import pandas as pd

d = {"sell": [
           {
               "Rate": 0.001425,
               "Quantity": 537.27713514
           },
           {
               "Rate": 0.00142853,
               "Quantity": 6.59174681
           }
]}

df = pd.DataFrame(d['sell'])
print (df)
     Quantity      Rate
0  537.277135  0.001425
1    6.591747  0.001429

df.plot(x='Quantity', y='Rate')

编辑:

还可以使用read_json函数来处理DataFrame数据。


1
太棒了,我正在熟悉pandas和数据框。对于任何其他阅读此内容的人,请确保包含以下内容:import pandas as pd - iontom
这取决于json的结构。如果结构简单,read_json函数可以完美地工作。如果结构更复杂或嵌套,解决方案也可以工作,但需要进行一些转换。 - jezrael
非常感谢!如果我想将时间戳附加到我的数据框中,格式会是什么样子?df = pd.DataFrame(jsonsource["result"]["sell"],timestamp) - iontom
你需要将标量值附加到新列吗? - jezrael
如果是,则需要 df['timestamp'] = timestamp - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接