Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(上)

目录

五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市,使用华夫图分析各个城市的情况

1.北京市的空气质量

2.广州市的空气质量

【上海市和成都市空气质量情况详见下期】

五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市,使用华夫图分析各个城市的情况

1.北京市的空气质量

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
#读入文件
bj = pd.read_csv('./Beijing.csv')
fig = plt.figure(dpi=100,figsize=(5,5))def good(pm):#优degree = []for i in pm:if 0 < i <= 35:degree.append(i)return degree
def moderate(pm):#良degree = []for i in pm:if 35 < i <= 75:degree.append(i)return degree
def lightlyP(pm):#轻度污染degree = []for i in pm:if 75 < i <= 115:degree.append(i)return degree
def moderatelyP(pm):#中度污染degree = []for i in pm:if 115 < i <= 150:degree.append(i)return degree
def heavilyP(pm):#重度污染degree = []for i in pm:if 150 < i <= 250:degree.append(i)return degree
def severelyP(pm):#严重污染degree = []for i in pm:if 250 < i:degree.append(i)return degree
def PM(bj,str3):bj_dist_pm = bj.loc[:, [str3]]bj_dist1_pm = bj_dist_pm.dropna(axis=0, subset=[str3])bj_dist1_pm = np.array(bj_dist1_pm[str3])bj_good_count = len(good(bj_dist1_pm))bj_moderate_count = len(moderate(bj_dist1_pm))bj_lightlyP_count = len(lightlyP(bj_dist1_pm))bj_moderatelyP_count = len(moderatelyP(bj_dist1_pm))bj_heavilyP_count = len(heavilyP(bj_dist1_pm))bj_severelyP_count = len(severelyP(bj_dist1_pm))a = {'优':bj_good_count,'良':bj_moderate_count,'轻度污染':bj_lightlyP_count,'中度污染':bj_moderatelyP_count,'重度污染':bj_heavilyP_count,'严重污染':bj_severelyP_count}pm = pd.DataFrame(pd.Series(a),columns=['daysum'])pm = pm.reset_index().rename(columns={'index':'level'})return pm
#北京
#PM_Dongsi列
bj_ds = PM(bj,'PM_Dongsi')
PMday_Dongsi = np.array(bj_ds['daysum'])
#PM_Dongsihuan列
bj_dsh = PM(bj,'PM_Dongsihuan')
PMday_Dongsihuan = np.array(bj_dsh['daysum'])
#PM_Nongzhanguan列
bj_nzg = PM(bj,'PM_Nongzhanguan')
PMday_Nongzhanguan = np.array(bj_nzg['daysum'])
bj_pm_daysum = (PMday_Dongsi+PMday_Dongsihuan+PMday_Nongzhanguan)/3
sum = 0
for i in bj_pm_daysum:sum += i
bj_pm_daysum1 = np.array(bj_pm_daysum)data = {'优':int((bj_pm_daysum[0]/sum)*100), '良':int((bj_pm_daysum[1]/sum)*100), '轻度污染': int(bj_pm_daysum[2]/sum*100),'中度污染':int((bj_pm_daysum[3]/sum)*100),'重度污染':int((bj_pm_daysum[4]/sum)*100),'严重污染':int((bj_pm_daysum[5]/sum)*100)}
total = np.sum(list(data.values()))
plt.figure(FigureClass=Waffle,rows = 5,   # 列数自动调整values = data,# 设置titletitle = {'label': "北京市污染情况",'loc': 'center','fontdict':{'fontsize': 13,}},labels = ['{} {:.1f}%'.format(k, (v/total*100)) for k, v in data.items()],# 设置标签图例的样式legend = {'loc': 'lower left','bbox_to_anchor': (0, -0.4),'ncol': len(data),'framealpha': 0,'fontsize': 6},dpi=120
)
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.show()

北京市总体空气质量差,有约16%的轻度污染,约12%的重度污染和6%的严重污染,中度污染的比例也相对较大,占比约9%。

2.广州市的空气质量

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
import math
#读入文件
gz = pd.read_csv('./Guangzhou.csv')
fig = plt.figure(dpi=100,figsize=(5,5))def good(pm):#优degree = []for i in pm:if 0 < i <= 35:degree.append(i)return degree
def moderate(pm):#良degree = []for i in pm:if 35 < i <= 75:degree.append(i)return degree
def lightlyP(pm):#轻度污染degree = []for i in pm:if 75 < i <= 115:degree.append(i)return degree
def moderatelyP(pm):#中度污染degree = []for i in pm:if 115 < i <= 150:degree.append(i)return degree
def heavilyP(pm):#重度污染degree = []for i in pm:if 150 < i <= 250:degree.append(i)return degree
def severelyP(pm):#严重污染degree = []for i in pm:if 250 < i:degree.append(i)return degreedef PM(gz,str3):gz_dist_pm = gz.loc[:, [str3]]gz_dist1_pm = gz_dist_pm.dropna(axis=0, subset=[str3])gz_dist1_pm = np.array(gz_dist1_pm[str3])gz_good_count = len(good(gz_dist1_pm))gz_moderate_count = len(moderate(gz_dist1_pm))gz_lightlyP_count = len(lightlyP(gz_dist1_pm))gz_moderatelyP_count = len(moderatelyP(gz_dist1_pm))gz_heavilyP_count = len(heavilyP(gz_dist1_pm))gz_severelyP_count = len(severelyP(gz_dist1_pm))a = {'优':gz_good_count,'良':gz_moderate_count,'轻度污染':gz_lightlyP_count,'中度污染':gz_moderatelyP_count,'重度污染':gz_heavilyP_count,'严重污染':gz_severelyP_count}pm = pd.DataFrame(pd.Series(a),columns=['daysum'])pm = pm.reset_index().rename(columns={'index':'level'})return pm
#广州
#PM_City Station列
gz_cs = PM(gz,'PM_City Station')
PMday_CityStation = np.array(gz_cs['daysum'])
#PM_5th Middle School列
gz_ms = PM(gz,'PM_5th Middle School')
PMday_5thMiddleSchool = np.array(gz_ms['daysum'])
gz_pm_daysum = (PMday_CityStation+PMday_5thMiddleSchool)/2
sum = 0
for i in gz_pm_daysum:sum += i
gz_pm_daysum1 = np.array(gz_pm_daysum)data = {'优':int((gz_pm_daysum[0]/sum)*100), '良':int((gz_pm_daysum[1]/sum)*100), '轻度污染': int(gz_pm_daysum[2]/sum*100),'中度污染':int((gz_pm_daysum[3]/sum)*100),'重度污染':int((gz_pm_daysum[4]/sum)*100),'严重污染':int((gz_pm_daysum[5]/sum)*100)}
total = np.sum(list(data.values()))
plt.figure(FigureClass=Waffle,rows = 5,   # 列数自动调整values = data,# 设置titletitle = {'label': "广州市污染情况",'loc': 'center','fontdict':{'fontsize': 13,}},labels = ['{} {:.1f}%'.format(k, (v/total*100)) for k, v in data.items()],# 设置标签图例的样式legend = {'loc': 'lower left','bbox_to_anchor': (0, -0.4),'ncol': len(data),'framealpha': 0,'fontsize': 6},dpi=120
)
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.show()

广州市总体空气质量优秀,优和良的空气质量占比超过80%,严重污染的天气情况少之甚少,污染天气——轻度污染、中度污染、重度污染和严重污染占比总和不超过20%。

【上海市和成都市空气质量情况详见下期】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重发布

一&#xff1a;作用 在两种路由协议之间&#xff0c;或者一个协议的不同进程之间&#xff0c;借助ASBR &#xff08;同时工作在两种协议或 者协 议的不同进程中&#xff09;学习到两个网络的路由信息&#xff0c;并且通过重发布进行路由共享&#xff0c;最终实现全网可 达。…

大模型实践笔记(1)——GLM-6B实践

目录 在Ubuntu上的配置Git Large File Storage 安装Git LFS&#xff1a; 设置Git LFS&#xff1a; 使用Git LFS&#xff1a; 安装GLM-6B 环境依赖 ChatGLM2-6B介绍 配置GLM 下载代码 构建环境 安装依赖 本地部署 网页UI 很多模型在hugging face上面&#xff0c;…

知识库系统为什么优秀企业都必备?这篇文章告诉你

在今天的商业世界中&#xff0c;知识就是力量。企业里的每一个小小的灵感、想法、经验&#xff0c;都可能是推动业务增长的源泉。那么&#xff0c;如何系统地管理和使用这些宝贵的知识资源呢&#xff1f;答案就是——知识库系统。 那么&#xff0c;什么是知识库系统呢&#xf…

六、Nacos源码系列:Nacos健康检查

目录 一、简介 二、健康检查流程 2.1、健康检查 2.2、客户端释放连接事件 2.3、客户端断开连接事件 2.4、小结 2.5、总结图 三、服务剔除 一、简介 Nacos作为注册中心不止提供了服务注册和服务发现的功能&#xff0c;还提供了服务可用性检测的功能&#xff0c;在Nacos…

【面试深度解析】快手后端一面:G1、IOC、AOP、并发、JVM生产问题定位、可重复读、ThreadLocal

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

代码随想录算法训练营第38天 | 动态规划理论基础 509.斐波那契数 70.爬楼梯 746.使用最小花费爬楼梯

动态规划理论基础 动态规划适用于解决有重叠子问题的问题。所以动态规划中的每一个状态一定是由上一个状态推导来的&#xff0c;这一点区分于贪心&#xff0c;因为贪心每一步总是取局部最优。 解题步骤&#xff1a; 确定dp数组的含义确定递推表达式dp数组如何初始化确定遍历顺…

图像处理之《可逆重缩放网络及其扩展》论文精读

一、文章摘要 图像重缩放是一种常用的双向操作&#xff0c;它首先将高分辨率图像缩小以适应各种显示器或存储和带宽友好&#xff0c;然后将相应的低分辨率图像放大以恢复原始分辨率或放大图像中的细节。然而&#xff0c;非单射下采样映射丢弃了高频内容&#xff0c;导致逆恢复…

LVGL部件6

一.圆弧部件 1.知识概览 2.函数接口 1.lv_obj_clear_flag 在 LVGL&#xff08;LittlevGL&#xff09;中&#xff0c;lv_obj_clear_flag 函数用于清除对象的特定标志位。该函数的原型如下&#xff1a; void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);obj 是指…

[力扣 Hot100]Day20 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 出处 思路 旋转时每四个位置为一组进行swap操作&#xff0c;找好对…

计算视图里的projection和aggregation节点区别

Projection 和 Aggregation到底有什么区别&#xff1f; 看名字就能看出来的。 那么在什么场景下用呢&#xff1f; 1. Projection就是投影&#xff0c;也就是说你本来的源里有什么&#xff0c;就直接给你拿出来。 除了这个&#xff0c;它使用的场景就是&#xff1a; 只映射需…

帮管客CRM 文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

TCP/IP详细介绍以及TCP/IP寻址

目录 ​编辑 1. TCP/IP 介绍 2. 计算机通信协议&#xff08;Computer Communication Protocol&#xff09; 3. 什么是 TCP/IP&#xff1f; 4. 在 TCP/IP 内部 5. TCP 使用固定的连接 6. IP 是无连接的 7. IP 路由器 8. TCP/IP 9. TCP/IP 寻址 10. IP地址 …

谷歌产品大更新:Bard可生成图像;文生音乐平台等5大免费功能

2月2日&#xff0c;谷歌在官网对生成式AI产品进行了大更新&#xff0c;包括类ChatGPT聊天助手Bard可以通过文本提示生成图像&#xff1b; 全新的文生音乐平台MusicFX&#xff1b;新的文生图像平台ImageFX&#xff1b;新的文本扩写平台TextFX&#xff1b;在谷歌地图中增加生成式…

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中&#xff0c;矩阵的创建方法主要有三种&#xff0c;分别是&#xff1a;直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号&#xff0c;矩阵的所有元素必须都在中括号内。 矩阵的同行元…

UnitySahder实现Phong/BlinnPhong模型

目录 Phong模型公式&#xff1a; BlinnPhong模型公式&#xff1a; 实现&#xff1a; Phong模型&#xff1a; BlinnPhong模型&#xff1a; Phong模型公式&#xff1a; 结果自发光&#xff0b;环境光漫反射高光反射 BlinnPhong模型公式&#xff1a; 对Phong模型的简单修改&…

Git―基本操作

Git ⛅认识 Git⛅安装 GitCentos(7.6)Ubuntu ⛅Git―基本操作创建本地仓库&#x1f342;配置本地仓库&#x1f342;工作区, 暂存区, 版本库&#x1f342;版本库工作区 添加文件&#x1f342;查看文件&#x1f342;修改文件&#x1f342;版本回退&#x1f342;☃️案例 撤销修改…

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…

THREE.JS动态场景开发实战【赛博朋克】

在本教程中&#xff0c;我们将探索如何创建类似 Three.js 的赛博朋克场景&#xff0c;灵感来自 Pipe 网站上的背景动画。 我们将指导你完成使用 Three.js 编码动态场景的过程&#xff0c;包括后处理效果和动态光照&#xff0c;所有这些都不需要任何着色器专业知识。 我用这个场…

西瓜书学习笔记——k近邻学习(公式推导+举例应用)

文章目录 算法介绍实验分析 算法介绍 K最近邻&#xff08;K-Nearest Neighbors&#xff0c;KNN&#xff09;是一种常用的监督学习算法&#xff0c;用于分类和回归任务。该算法基于一个简单的思想&#xff1a;如果一个样本在特征空间中的 k k k个最近邻居中的大多数属于某个类别…

vue+element 换肤功能

1.首先建深色和浅色两个主题样式变量样式表&#xff0c;样式表名和按钮中传入的值一样&#xff0c;本例中起名为default.scss和dark.scss 2.在data中定义主题变量名 zTheme:‘defalut’&#xff0c;默认引用defalut.scss, 在点击按钮时切换引用的样式表&#xff0c;达到换肤效果…