Как манипулировать json по сюжету и numpy? - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь построить график на графике с данными такого рода json. Я открыл файл json и загрузил данные в переменную data. Код ниже случайным образом генерирует точки на графике. Как мне манипулировать данными по оси X, чтобы они отображали временной интервал по оси X и значение по оси Y.

import plotly.graph_objects as go

import numpy as np
import json

with open('test.json') as json_file:
    data = json.load(json_file)



fig = go.Figure()

trace_num = 1
point_num = 5000
for i in range(trace_num):
    fig.add_trace(
        go.Scattergl(
                x = np.linspace(0, 1, point_num),
                y = np.random.randn(point_num)+(i*5)
        )
    )

fig.update_layout(showlegend=False)

fig.show()
{
    "SpotKey": "79",
    "SpotName": "ELIX",
    "Denomination": "eur/mwh",
    "Elements": [
      {
        "Date": "2017-01-01T00:00:00",
        "Base": 36.8696,
        "Peak": 36.0125,
        "TimeSpans": [
          {
            "TimeSpan": "00:00-01:00",
            "Value": 46.43
          },
          {
            "TimeSpan": "01:00-02:00",
            "Value": 42.43
          }
        ]
      },
      {
        "Date": "2017-01-02T00:00:00",
        "Base": 53.7413,
        "Peak": 63.0317,
        "TimeSpans": [
          {
            "TimeSpan": "00:00-01:00",
            "Value": 41.18
          },
          {
            "TimeSpan": "01:00-02:00",
            "Value": 37.34
          }
        ]
      }
    ]
}

Сложность здесь заключается в дате, так как дата прогрессирует, мне нужно добавить дату ко времени?

1 Ответ

1 голос
/ 24 февраля 2020

вы можете попробовать следующее:

X, Y = [], []
for item in data['Elements']:
    for sub_item in item['TimeSpans']:
        X.append(sub_item['TimeSpan'])
        Y.append(sub_item['Value'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...