【问题标题】:Easiest way to plot data from JSON with matplotlib?使用 matplotlib 从 JSON 绘制数据的最简单方法?
【发布时间】:2017-11-20 22:48:45
【问题描述】:

所以我有一些json格式的数据,这里有一个sn-p:

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

访问 Rate 和 Quantity 以便我可以在 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])

【问题讨论】:

    标签: python json pandas matplotlib plot


    【解决方案1】:

    最简单的是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

    【讨论】:

    • 太棒了,我刚刚开始熟悉 pandas 和数据框。对于阅读本文的任何其他人,请确保您包括:import pandas as pd
    • 这取决于json 的结构。如果结构简单,read_json 可以完美运行。如果更复杂或嵌套,解决方案也可以,但需要进行一些转换。
    • 非常感谢!如果我想将时间戳附加到我的数据帧,格式会是什么样子? df = pd.DataFrame(jsonsource["result"]["sell"],timestamp)
    • 您需要将标量值附加到新列吗?
    • 如果是,则需要df['timestamp'] = timestamp
    猜你喜欢
    • 1970-01-01
    • 2016-07-04
    • 2021-08-14
    • 2014-12-25
    • 2017-01-15
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多