我想将温度绘制成图表来显示整天。 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()
答案 0 :(得分:1)
我已经快速解析了pyOWM examples,看来pyowm
已经为openweathermap.org提供的XML / JSON提供了一些不错的语法(请参阅example XML data for London)
简而言之,fc.get_forecast()
行返回一个可以迭代(即for weather in f:
)的预测对象,并且该函数具有将预测日期作为{ {1}}对象,温度单位为开尔文。现在,您只需要存储两者(例如存储在简单列表datetime
和times
中),就可以进行绘制了。请注意对temps
的调用,该调用可使x轴标签旋转并很好地格式化。
完整代码:
fig.autofmt_xdate()