Python||五城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
import math
#读入文件
sh = pd.read_csv('./Shanghai.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(sh,str3):sh_dist_pm = sh.loc[:, [str3]]sh_dist1_pm = sh_dist_pm.dropna(axis=0, subset=[str3])sh_dist1_pm = np.array(sh_dist1_pm[str3])sh_good_count = len(good(sh_dist1_pm))sh_moderate_count = len(moderate(sh_dist1_pm))sh_lightlyP_count = len(lightlyP(sh_dist1_pm))sh_moderatelyP_count = len(moderatelyP(sh_dist1_pm))sh_heavilyP_count = len(heavilyP(sh_dist1_pm))sh_severelyP_count = len(severelyP(sh_dist1_pm))a = {'优':sh_good_count,'良':sh_moderate_count,'轻度污染':sh_lightlyP_count,'中度污染':sh_moderatelyP_count,'重度污染':sh_heavilyP_count,'严重污染':sh_severelyP_count}pm = pd.DataFrame(pd.Series(a),columns=['daysum'])pm = pm.reset_index().rename(columns={'index':'level'})return pm
#上海
#PM_Jingan列
sh_jg = PM(sh,'PM_Jingan')
PMday_Jingan = np.array(sh_jg['daysum'])
#PM_Xuhui列
sh_xh = PM(sh,'PM_Xuhui')
PMday_Xuhui = np.array(sh_xh['daysum'])
sh_pm_daysum = (PMday_Jingan+PMday_Xuhui)/2
sum = 0
for i in sh_pm_daysum:sum += i
sh_pm_daysum1 = np.array(sh_pm_daysum)data = {'优':int((sh_pm_daysum[0]/sum)*100), '良':int((sh_pm_daysum[1]/sum)*100), '轻度污染': int(sh_pm_daysum[2]/sum*100),'中度污染':int((sh_pm_daysum[3]/sum)*100),'重度污染':int((sh_pm_daysum[4]/sum)*100),'严重污染':int((sh_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()

上海市总体空气质量良好,优和良的空气质量占比超过70%,只有不到1%的严重污染,中度污染和重度污染占比总和不超过10%。

2.成都市的空气质量

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle#读入文件
cd = pd.read_csv('./Chengdu.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(cd,str3):cd_dist_pm = cd.loc[:, [str3]]cd_dist1_pm = cd_dist_pm.dropna(axis=0, subset=[str3])cd_dist1_pm = np.array(cd_dist1_pm[str3])cd_good_count = len(good(cd_dist1_pm))cd_moderate_count = len(moderate(cd_dist1_pm))cd_lightlyP_count = len(lightlyP(cd_dist1_pm))cd_moderatelyP_count = len(moderatelyP(cd_dist1_pm))cd_heavilyP_count = len(heavilyP(cd_dist1_pm))cd_severelyP_count = len(severelyP(cd_dist1_pm))a = {'优':cd_good_count,'良':cd_moderate_count,'轻度污染':cd_lightlyP_count,'中度污染':cd_moderatelyP_count,'重度污染':cd_heavilyP_count,'严重污染':cd_severelyP_count}pm = pd.DataFrame(pd.Series(a),columns=['daysum'])pm = pm.reset_index().rename(columns={'index':'level'})return pm
#成都
#PM_Caotangsi列
cd_cts = PM(cd,'PM_Caotangsi')
PMday_Caotangsi = np.array(cd_cts['daysum'])
#PM_Shahepu列
cd_shp = PM(cd,'PM_Shahepu')
PMday_Shahepu = np.array(cd_shp['daysum'])
cd_pm_daysum = (PMday_Shahepu+PMday_Caotangsi)/2
sum = 0
for i in cd_pm_daysum:sum += i
cd_pm_daysum1 = np.array(cd_pm_daysum)data = {'优':int((cd_pm_daysum[0]/sum)*100), '良':int((cd_pm_daysum[1]/sum)*100), '轻度污染': int(cd_pm_daysum[2]/sum*100),'中度污染':int((cd_pm_daysum[3]/sum)*100),'重度污染':int((cd_pm_daysum[4]/sum)*100),'严重污染':int((cd_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()

成都市总体空气质量较差,空气污染程度占比约35%——其中轻度污染占比约17%,中度污染占比约8%,重度污染占比约8%,严重污染占比约2%。

【沈阳市空气质量情况详见下期】

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

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

相关文章

爬虫(三)

1.JS逆向实战破解X-Bogus值 X-Bogus:以DFS开头&#xff0c;总长28位 答案是X-Bogus,因为会把负载里面所有的值打包生成X-Boogus 1.1 找X-Bogus加密位置&#xff08;请求堆栈&#xff09; 1.1.1 绝招加高级断点&#xff08;日志断点&#xff09; 日志断点看有没有X-B值 日志…

Leetcode—32. 最长有效括号【困难】(动态规划及ranges::max()使用)

2024每日刷题&#xff08;110&#xff09; Leetcode—32. 最长有效括号 栈实现代码 class Solution { public:int longestValidParentheses(string s) {stack<int> st;st.push(-1);int n s.size();int maxn 0;for(int i 0; i < n; i) {if(s[i] () {st.push(i);}…

Transformer实战-系列教程7:SwinTransformer 算法原理 1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的PPT资源已经上传 1、SwinTransformer SwinTransformer 可以看作为一个backbone用来做分类、检测、分割都是非常好的…

zxxxxczzvdsgbhfdb

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 磁盘满的本质分析 专栏&#xff1a;《Linux从小白到大神》 | 系统学习Linux开发、VIM/GCC/GDB/Make工具…

低代码与MES系统相结合

​低代码平台通常是指aPaaS平台&#xff0c;通过为开发者提供可视化的应用开发环境&#xff0c;降低或去除应用开发对原生代码编写的需求量&#xff0c;进而实现便捷构建应用程序的一种解决方案。 更加简单点的理解就是“拖拽&#xff01;搭建应用”。 一、低代码开发平台概述 …

单片机最小系统是什么?包含哪几个部分?

单片机最小系统是什么&#xff1f;包含哪几个部分&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&…

流式 dbt:RisingWave 流计算的正确打开方式

让我们先来看一则 Reddit 经典提问&#xff1a; “为啥 dbt 如此流行&#xff1f;有没有替代品&#xff1f;” 获赞最多的回答抓住了精髓&#xff1a; “dbt 这么流行是因为它为 SQL 分析师和数据集市构建者提供了 Git 工作流&#xff0c;使得他们可以跟其他软件工程师一样工作…

Innodb索引页文件结构

Innodb索引页文件结构 首先Mysql的基本存储结构是页&#xff0c;Mysql中的存取数据是按照页进行存取的&#xff0c;在查找数据的时候是需要先定位到记录所在页&#xff0c;再从所在页中查找到相应的记录 数据页以一个双向链表维持着顺序&#xff0c;每个数据页以单向链表的格式…

nvm安装node后,npm无效

类似报这种问题&#xff0c;是因为去github下载npm时下载失败&#xff0c; Please visit https://github.com/npm/cli/releases/tag/v6.14.17 to download npm. 第一种方法&#xff1a;需要复制这里面的地址爬梯子去下载&#xff08;github有时不用梯子能直接下载&#xff0c;有…

CodeFuse-VLM 开源,支持多模态多任务预训练/微调

CodeFuse-MFT-VLM 项目地址&#xff1a;https://github.com/codefuse-ai/CodeFuse-MFT-VLM CodeFuse-VLM-14B 模型地址&#xff1a;CodeFuse-VLM-14B CodeFuse-VLM框架简介 随着huggingface开源社区的不断更新&#xff0c;会有更多的vision encoder 和 LLM 底座发布&#x…

力扣● 62.不同路径 ● 63. 不同路径 II

● 62.不同路径 单解这道题的话&#xff0c;发现第一行或者第一列的这些位置&#xff0c;都只有一条路径走到&#xff0c;所以路径条数都是1。这就是初始化。坐标大于第一行第一列的这些位置&#xff0c;因为机器人只能向下/向右走&#xff0c;所以只能从上个位置向下走和从左…

CentOS基于volatility2的内存取证实验

CentOS&#xff0c;Redhat和Fedora 都是Red Hat体系&#xff0c;采用yum管理器&#xff0c;不同于Debian、Ubuntu作为Debian体系使用apt 本文以CentOS为例&#xff0c;采用avml制作内存镜像&#xff0c;并利用volatility官方所给工具制作profile符号文件&#xff0c;进行简单的…

对象存储minio

参考Linux搭建免费开源对象存储 wget https://dl.minio.io/server/minio/release/linux-amd64/minio yum install -y wget yum install -y wget wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod x minio sudo mv minio /usr/local/bin/ minio --vers…

第7节、双电机直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;前面章节主要介绍单个电机控制&#xff0c;本节内容介绍两个电机完成Bresenham直线运动 一、Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发&#xff0c;最初用于计…

小白水平理解面试经典题目LeetCode 20. Valid Parentheses【栈】

20.有效括号 小白渣翻译 给定一个仅包含字符 ‘(’ 、 ‘)’ 、 ‘{’ 、 ‘}’ 、 ‘[’ 和 ‘]’ &#xff0c;判断输入字符串是否有效。 输入字符串在以下情况下有效&#xff1a; 左括号必须由相同类型的括号封闭。 左括号必须按正确的顺序关闭。 每个右括号都有一个对…

openstack(T版)公有云--Dashboard服务

公有云上OpenStack Train最小化安装_openstack最小化部署-CSDN博客 我的opensatck(T)是参考上面链接去部署完成的&#xff0c;在部署完Dashboard服务后&#xff0c;将要用浏览器访问的时候出现了404 500 Internal Server Error 等各种各样的问题&#xff0c;以下是我排查问题…

代码随想录算法训练营第二七天 | 回溯 组合 分割

目录 组合总和组合总和II分割回文串 LeetCode 39. 组合总和 LeetCode 40.组合总和II LeetCode 131.分割回文串 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &am…

嵌入式软件的设计模式与方法

思想有多远&#xff0c;我们就能走多远 4、状态与工作流类设计模式 4.1 状态与事件 行为随条件变化而改变&#xff0c;这里状态切换的模式也称为状态机。有限状态机 (Finite State Machine&#xff0c;FSM) 是由3 个主要元素组成的有向图: 状态、转换和动作。 状态是系统或者…

12. UE5 RPG使用GameplayEffect修改角色属性(三)

书接 11. UE5 RPG使用GameplayEffect修改角色属性&#xff08;二&#xff09; 前面&#xff0c;介绍了GameplayEffect的Instant和Duration的使用&#xff0c;这一篇主要介绍一下无限制时间类型的infinite的使用方式。 无限时间限制模式下&#xff0c;如果你的周期时间&#xff…

Android meminfo 查看方法及解析

目录 Android 上查看memory 信息的方法 内存限制的信息 手动释放缓存 例 adb shell dumpsys meminfo pid 解析 adb shell dumpsys meminfo 汇总信息说明 Total RAM Free RAM ION Used RAM Lost RAM ZRAM /proc/meminfo 参考文档 Android 上查看memory 信息的方法 …