使用matplotlib绘制天气预报

时间:2019-05-19 19:29:48

标签: python matplotlib openweathermap

我想将温度绘制成图表来显示整天。 x轴为小时,y轴为°C。

我想将MatPlotLib用于此任务。但也许对此有更好的解决方案。根据当前温度的实时更新来比较预测值和当前值。 我完成了本教程,但无法弄清楚如何从预测中访问这些值。我能够接收这些数据集并使用for循环打印它们。但是,正如已经提到的那样,图形绘制方法会很棒。

我使用MatPlotLib尝试了一些基本的绘图,并尝试了教程。

from pyowm import OWM
import matplotlib.pyplot as plt
import numpy as np

API_key = 'XXXXXXXXXXXXXXX'

owm = OWM(API_key)

obs = owm.weather_at_place('LOCATION')

fc = owm.three_hours_forecast('LOCATION')

f = fc.get_forecast()

plt.plot(f) #How do I get the temp value out of f

plt.xlabel('h')
plt.ylabel('°C')

plt.title("Temperature")

plt.legend()

plt.show()

1 个答案:

答案 0 :(得分:1)

我已经快速解析了pyOWM examples,看来pyowm已经为openweathermap.org提供的XML / JSON提供了一些不错的语法(请参阅example XML data for London

简而言之,fc.get_forecast()行返回一个可以迭代(即for weather in f:)的预测对象,并且该函数具有将预测日期作为{ {1}}对象,温度单位为开尔文。现在,您只需要存储两者(例如存储在简单列表datetimetimes中),就可以进行绘制了。请注意对temps的调用,该调用可使x轴标签旋转并很好地格式化。

完整代码:

fig.autofmt_xdate()