首先,选取2345天气网(http://tianqi.2345.com/wea_history/57494.htm)作为数据源网站查看武汉市的历史天气,可以观察到每一天的天气都是由最高气温、最低气温、天气、风向风力、空气质量指数5部分组成。

编写python程序get_data.py爬取武汉市2019年天气数据,并存储为wuhan_weather_2020.csv,共365条数据,列值比网页展示的更详细,依次为:日期,最高温度(摄氏度),最低温度(摄氏度),天气,风向,风力,空气指数,空气质量,空气质量等级9项。

#由于篇幅问题仅展示部分代码
print('一共有',len(all_datas),'条数据')#将数据存为csv格式
with open('./wuhan_weather_2019.csv', 'w', newline='', encoding='utf-8') as csv_file:writer = csv.writer(csv_file)columns = ['ymd', 'bWendu', 'yWendu', 'tianqi', 'fengxiang', 'fengli', 'aqi', 'aqiInfo', 'aqiLevel']writer.writerow(columns)for data in all_datas:writer.writerow([data[column] for column in columns])

获取数据成功后,将使用饼图、折线图、词云图、地图4种类型图表对天气数据进行可视化展示。在饼图中展示武汉市的空气污染情况,空气质量分为5个等级,分别为:优(excellent)、良(good)、轻度污染(light_pollution)、中度污染(middle_pollution)、重度污染(heavy_pollution),每个空气质量等级在2019年占比不同。


#由于篇幅问题仅显示部分代码pr=pd.read_csv("wuhan_weather_2019.csv")#显示在图上的标签labels=['excellent','good','light_pollution','middle_pollution','heavy_pollution']values=[excellent,good,light_pollution,middle_pollution,heavy_pollution]#颜色colors=['y','m','b','r','g']#标题plt.title("Air quality of Wuhan in 2019")plt.pie(values,labels=labels,colors=colors,shadow=True,autopct='%1.1f%%')plt.axis('equal')#存储为图片plt.savefig("AirQuality_piechart.png")#展示plt.show()

最终生成可视化图片如下

武汉市2019年空气质量“良”占比最高,高达63.6%,空气质量达到“优”的天数也很可观,相比之下,达到“污染”空气质量的天数占比仅仅约10%,其中“重度污染”几乎没有。因此,从这个饼图来看,武汉市2019年的空气质量状况差强人意。

折线图用于绘制武汉市2019年全面的最高气温和最低气温变化,红色折线代表最高温,蓝色折线代表最低温,由于全年的天气数据过多,因此在折线图的横轴只显示以年-月的格式显示,而不显示具体日期。

#由于篇幅问题仅显示部分代码with open(file_2019) as f:reader = csv.reader(f)header_row = next(reader)# 依次读取每行,并保存日期,最高温,最低温为列表dates, highs, lows = [], [], []for row in reader:current_date = datetime.datetime.strptime(row[0], "%Y-%m-%d")high = int(row[1].rstrip("℃"))low = int(row[2].rstrip("℃"))dates.append(current_date)highs.append(high)lows.append(low)# 图像分辨率,尺寸设置fig = plt.figure(dpi=128, figsize=(10, 6))# 标题设置plt.title('High and low temperatures of Wuhan in 2019')# X轴标签设置,自动更新格式plt.xlabel('Date')fig.autofmt_xdate()# Y轴标签和坐标范围设置plt.ylabel('Temperatures(C)')plt.ylim(-10, 40)# 刻度设置plt.tick_params(axis='both', which='both', labelsize=10)# 根据数据画折线图plt.plot(dates, highs, linewidth=5, c='red', alpha=0.5)plt.plot(dates, lows, linewidth=5, c='blue', alpha=0.5)# 区域填充plt.fill_between(dates, highs, lows, facecolor='green', alpha=0.1)plt.savefig("High&lowTemperatures_linechart.png")# 图像显示plt.show()

最终生成可视化图片如下

2019年武汉市的最低气温均在-5摄氏度以上,而且虽然两条最高温和最低温的折线大体趋势是一直向上增长,直到9月份才开始回落,但是同一个月份中的最高、最低气温波动依旧很频繁,尤其是4月份和9月份波动幅度很大,这种波动也很符合我一直以来对武汉天气变换速度快的认知。

词云图用于描述2019年武汉市天气和风向,天气分为晴,多云,阴,小雨,中雨,大雨,阵雨,暴雨,雷阵雨9类,风向分为东北风,东南风,西北风,西南风4类。

#由于篇幅问题仅显示部分代码
data = [('晴', qing), ('多云', duoyun), ('阴', yin),('小雨', xiaoyu),('中雨', zhongyu),('大雨', dayu),('阵雨', zhenyu),('暴雨', baoyu),('雷阵雨', leizhenyu),('东北风', dongbeifeng),('东南风', dongnanfeng),('西北风', xibeifeng),('西南风', xinanfeng)]print(data)mywordcloud = WordCloud()mywordcloud.add('', data, shape='circle')mywordcloud.render()

最终生成词云如下

鼠标每移动到一个词上时,旁边都会显示出该词出现的频次,很明显可以看到武汉最常刮东北风,其次是东南风,而西北风和西南风则存在感较低;但9种天气的频次加起来会超过365,因为在天气数据的csv中,我们可以看到,有的天气显示的是类似“阴~小雨”,因此它们的频次加起来超过了365,在这个词云中出现频率最高的字就是“雨”,显然,武汉的下雨天很多。

最后选取一些分布较远的城市,将它们的空气质量指数和武汉市10月某天的空气质量指数一起输入到ECHARTS的官方实例代码中进行比较,并生成了空气质量对比地图,图中的黄圈越小,空气指数越低,说明空气质量越好

从图中可以看到武汉市及其周边的城市空气质量相差不大,而西北方向的城市,尤其是和田,在武汉市的对比下则显得黄圈面积格外大,说明空气质量非常差,污染问题很严重。

【Python】2019年武汉市天气数据分析与可视化相关推荐

  1. python数据预测案例_Python数据分析及可视化实例之疾病预测(分类)

    Talk is cheap , show U the code. 该源码注释比较全面,需要对SKlearn有一定的了解, 当然,你也可以把它视作黑箱,做个调包侠也是大侠, 没错,本主用Bokeh进行可 ...

  2. python分析数据走势_Python数据分析及可视化实例之个股走势预测(26)

    1.项目背景: 仅仅用来练手,个股走势如果真预测准确了,都就改行当操盘手了,哈哈! 但话又说回来,如果把数据曲线特征提取出来,再进行对比异常判断,也是可以的. 数据源,请关注微信公众号:海豹战队,回复 ...

  3. python爬虫可视化web展示_基于Python爬虫的职位信息数据分析和可视化系统实现

    1. 引言 在这个新时代,人们根据现有的职位信息数据分析系统得到的职位信息越来越碎片化,面对收集到的大量的职位信息数据难以迅速地筛选出对自己最有帮助的职位信息,又或者筛选出信息后不能直观地看到数据的特 ...

  4. 使用python进行北京二手房信息数据分析及可视化展示

    之前我们爬取了贝壳找房上的北京二手房信息,具体可以查看python爬取贝壳找房之北京二手房源信息,现在我们针对获取的数据进行分析及可视化的展示,本文代码和数据均存放在github上,链接地址:贝壳找房 ...

  5. 毕设 - 天气数据分析与可视化 天气预测 lstm

    文章目录 0 前言 2 项目简介 3 开始分析 3.1 海洋对当地气候的影响 3.2 导入数据集 3.3 温度数据分析 3.4 湿度数据分析 3.5 风向频率玫瑰图 3.6 计算风速均值的分布情况 4 ...

  6. python新冠病毒COVID-19数据分析和数据可视化

    在全球范围内,截至2021 年 11 月 15 日欧洲中部时间下午 4:30,各国已向世卫组织报告了253,163,330(2.5亿)例COVID-19确诊病例,包括5,098,174(5百万)例死亡 ...

  7. 基于Python的海量豆瓣电影、数据获取、数据预处理、数据分析、可视化、大屏设计项目(含数据库)

    目录 项目介绍 研究背景 国内外研究现状分析 研究目的 研究意义 研究总体设计 网络爬虫介绍 豆瓣电影数据的采集 数据预处理 大数据分析及可视化 豆瓣影评结构化分析 大屏可视化 文本可视化 总结 每文 ...

  8. 微信好友特征数据分析及可视化

    一.研究背景及现状 在我国互联网的发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展.数据显示,截止2013年底,中国手机网民超过5亿,占比达81%.伴随着移动终端价格的下降及wifi的广泛 ...

  9. python画图横轴刻度间隔设置为3个月_Python 天气情况数据分析及可视化

    Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3.7 Anconda 集成开发环境 第三方库导入 ## pip install 模块 清华大 ...

  10. [转载] Python 天气 简单 数据分析及可视化

    参考链接: 使用Python Pandas进行数据分析和可视化 Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3.7 Anconda 集成开 ...

最新文章

  1. 解决:无法创建该DNS 服务器的委派
  2. R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现
  3. hdu 1520 树形dp
  4. python创建文件os_Python之文件与目录操作(os、zipfile、tarfile、shutil)
  5. 大话设计模式(十一 三层架构,分层开发)
  6. IP v4 IP v6
  7. 8-4 Fabled Rooks uva11134
  8. 群体测试中的假阴性影响
  9. 不要再问我this的指向问题了
  10. CodeForces - 788B Weird journey 欧拉路
  11. leftjoin多表联合查询_图解面试题:多表如何查询?
  12. 优秀的音频EQ均衡器音效源码
  13. 中国临沂白沙埠第四届洋葱文化节开幕
  14. android 自动阅读新闻,Android 用Groovy实现扇贝阅读APP的自动阅读功能
  15. Alfred workflow使用教程持续更新
  16. 计算机视觉经典论文的参考论文目录
  17. A Tutorial on Learned Multi-dimensional Indexes
  18. 控制台报错:Unknown database ‘xxxxx‘
  19. android 输入法 sd卡,关于安卓手机内置或外置SD卡中各文件夹的名称和作用
  20. 如何把魅族Pro 5刷成Ubuntu手机

热门文章

  1. IM 即时通讯开发如何设计图片文件的服务端存储架构
  2. 第六章-2 CS创建监听与payload
  3. 作业 5:词频统计——增强功能
  4. CPU使用率过高应该如何处理
  5. html 表格选择滚动条,table设置tbody滚动条
  6. 如何把pdf转成图片jpg格式?俩个方法,1分钟搞定
  7. JDK8中Lambda 表达式语法糖脱糖[非原创]
  8. Redhat8.0最小化安装没有tab补全命令
  9. 触动精灵 alilib
  10. 分组密码算法CBC密文窃取模式(Ciphertext Stealing for CBC Mode)研究