Я быстро проанализировал примеры pyOWM , и похоже, что pyowm
уже предоставляет хороший синтаксис для XML / JSON, который предоставляется openweathermap.org (см. пример XML данные для Лондона ).
Проще говоря, строка fc.get_forecast()
возвращает прогнозируемый объект, который может быть повторен по (т. Е. for weather in f:
), и который имеет функции для получения даты прогноза как объекта datetime
, и температура в Кельвинах. Теперь вам нужно только сохранить оба (например, в простых списках times
и temps
) и быть готовыми к печати. Обратите внимание на вызов fig.autofmt_xdate()
, который заставляет метки оси X вращаться и красиво форматировать.
полный код:
from pyowm import OWM
import matplotlib.pyplot as plt
import numpy as np
API_key = 'XXXXXXXXXXXXXXX'
owm = OWM(API_key)
fc=owm.three_hours_forecast('London,GB')
f = fc.get_forecast()
times=[]
temps=[]
for weather in f:
date=weather.get_reference_time('date')
times.append(date)
t_kelvin=weather.get_temperature()['temp']## get temperature in kelvin
temps.append(t_kelvin-273.15) ## convert to celsius
print(date,t_kelvin-273.15) ## just to show what's happening
fig,ax=plt.subplots()
ax.plot(times,temps,label='forecast')
ax.set_ylabel('°C')
ax.set_title('Temperature')
ax.legend()
fig.autofmt_xdate()
plt.show()