今天我们分享一个小案例,获取天气数据,进行可视化分析,带你直观了解天气情况!

核心功能设计

总体来说,我们需要先对中国天气网中的天气数据进行爬取,保存为csv文件,并将这些数据进行可视化分析展示。

拆解需求,大致可以整理出我们需要分为以下几步完成:

1.通过爬虫获取中国天气网7.20-7.21的降雨数据,包括城市,风力方向,风级,降水量,相对湿度,空气质量。

2.对获取的天气数据进行预处理,分析河南的风力等级和风向,绘制风向风级雷达图。

3.根据获取的温度和湿度绘制温湿度相关性分析图,进行温度、湿度对比分析。

4.根据获取的各城市的降雨量,可视化近24小时的每小时时段降水情况。

5.绘制各城市24小时的累计降雨量。

实现步骤

爬取数据

首先我们需要获取各个城市的降雨数据,通过对中国天气网网址分析发现,城市的天气网址为:http://www.weather.com.cn/weather/101180101.shtml。

根据对数据分析,返回的json格式数据,不难发现:

101180101就是代表城市编号- 7天的天气预报数据信息在div标签中并且id=“7d”- 日期、天气、温度、风级等信息都在ul和li标签 网页结构我们上面已经分析好了,那么我们就可以来动手爬取所需要的数据了。获取到所有的数据资源之后,可以把这些数据保存下来。

请求网站

天气网的网址:http://www.weather.com.cn/weather/101180101.shtml。如果想爬取不同的地区只需修改最后的101180101地区编号,前面的weather代表是7天的网页。

处理数据

采用beautifulsoup库对刚刚获取的字符串进行数据提取。获取我们需要的风力方向,风级,降水量,相对湿度,空气质量等。

城市的天气数据拿到了,同理我们可以根据不同的地区编号获取河南省各个地级市的天气数据。

存储数据

这样我们就可以把全省的各个地级市天气数据保存下来了。

风向风级雷达图

统计全省的风力和风向,因为风力风向使用极坐标的方式展现比较清晰,所以我们采用极坐标的方式展现一天的风力风向图,将圆分为8份,每一份代表一个风向,半径代表平均风力,并且随着风级增高,蓝色加深。

结果如下:

观察可以发现,当天的东北风最多,平均风级达到了1.75级。

温湿度相关性分析

我们可以分析温度和湿度之间是否存在关系,为了更加清楚直观地验证,可以使用离散点plt.scatter()方法将温度为横坐标、湿度为纵坐标,每个时刻的点在图中点出来,并且计算相关系数。

结果如下:

观察可以发现,一天的温度和湿度具有强烈的相关性,呈负相关。当温度较低时,空气中水分含量较多,湿度自然较高,而温度高时空气中可容纳的水汽增大,相对湿度随之降低,但其实空气中的水汽往往是增加的。

24小时内每小时时段降水

24小时累计降雨量

至此,天气数据分析可视化就完成啦

以上就是python实现爬取天气数据并可视化分析的详细内容,更多关于python爬取天气数据的资料请关注www.887551.com其它相关文章!