当前位置: 首页 > article >正文

【Python】芜湖市空气质量指数可视化(散点图、分类散点图、单变量分布图、线性回归拟合图、相关性热力图)

【Python】芜湖市空气质量指数可视化

本文仅供学习参考,如有错误,还请指正!

一、简介

空气质量指数(Air Quality Index,AQI )简而言之就是能够对空气质量进行定量描述的数据。空气质量(Air Quality )的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。空气污染是一个复杂的现象,在特定的时间和地点,空气污染物浓度受到许多因素影响。
下图是安徽芜湖市2020年空气质量指数的部分数据,请使用所给数据完成下列任务。

image-20230503144511320

二、题目要求

(1)使用pandas库读取芜湖市2020年空气质量指数统计数据。

(2)绘制AQI和PM2.5的关系散点图。

(3)绘制空气质量等级分类散点图。

(4)绘制空气质量等级单变量分布图。

(5)绘制PM2.5与AQI的线性回归拟合图。

(6)计算相关系数。

(7)绘制特征相关性热力图。

三、输出结果

AQI和PM2.5的关系散点图

image-20230503144633410

绘制空气质量等级分类散点图

image-20230503144713886

绘制空气质量等级单变量分布图

image-20230503144735196

绘制PM2.5与AQI的线性回归拟合图

image-20230503144800026

计算相关系数

image-20230503144817846

绘制特征相关性热力图

image-20230503144832898

四、源代码


# 何壮壮 20302211009
import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

# 正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family'] = 'sans-serif'

# 1、读取数据
aqi = pd.read_csv('aqi.csv', encoding='gbk')
# ['日期', 'AQI', '质量等级', 'PM2.5含量(ppm)', 'PM10含量(ppm)', 'SO2含量(ppm)',
#       'CO含量(ppm)', 'NO2含量(ppm)', 'O3_8h含量(ppm)']

# 绘制 aqi 和 pm2.5 的关系散点图
# 设置图像尺寸
plt.figure(figsize=(15, 10))
# 绘制散点图,横坐标为aqi数据的第二列,纵坐标为aqi数据的第四列
plt.scatter(aqi[aqi.columns[1]], aqi[aqi.columns[3]])
# 设置横轴标签为'AQI',字体大小为20
plt.xlabel('AQI', fontsize=20)
# 设置纵轴标签为'PM2.5',字体大小为20
plt.ylabel('PM2.5', fontsize=20)
# 设置图像标题为'芜湖市AQI和PM2.5的关系散点图',字体大小为25
plt.title('芜湖市AQI和PM2.5的关系散点图', fontsize=25)
# 显示图像
plt.show()

# 绘制空气质量等级分类散点图
# 设定画布大小
plt.figure(figsize=(15, 10))
# 绘制散点图,x轴:AQI数据,y轴:空气等级数据
sn.stripplot(x=aqi[aqi.columns[2]], y=aqi[aqi.columns[1]], data=aqi, jitter=True)
# 设定x轴标签和字体大小
plt.xlabel('AQI', fontsize=20)
# 设定y轴标签和字体大小
plt.ylabel('空气等级', fontsize=20)
# 设定标题和字体大小
plt.title('芜湖市空气质量等级分类散点图', fontsize=25)
# 显示图形
plt.show()

# 绘制空气质量等级单变量分布图
# 绘制以第三列为 x 轴,数据来源为 aqi 的计数图
sn.countplot(x=aqi.columns[2], data=aqi)
# 设置标题为“空气质量等级单变量分布图”
plt.title("空气质量等级单变量分布图")
# 设置 x 轴标签为“质量等级”
plt.xlabel("质量等级")
# 设置 y 轴标签为“频数”
plt.ylabel("频数")
# 显示图像
plt.show()

# 绘制PM2.5与AQI的线性回归拟合图
# 调用seaborn库的regplot函数,将PM2.5含量(ppm)作为x轴,AQI作为y轴,数据源为aqi
sn.regplot(x='PM2.5含量(ppm)',  y='AQI',  data=aqi)
# 设定图表标题为  'PM2.5与AQI的线性回归拟合图'
plt.title('PM2.5与AQI的线性回归拟合图')
# 设定图表x轴标签为'PM2.5含量(ppm)'
plt.xlabel('PM2.5含量(ppm)')
# 设定图表y轴标签为'AQI'
plt.ylabel('AQI')
# 显示图表
plt.show()

# 计算相关系数
# 计算相关系数并赋值给变量 corr
corr = aqi[['AQI', 'PM2.5含量(ppm)', 'PM10含量(ppm)', 'SO2含量(ppm)', 'CO含量(ppm)', 'NO2含量(ppm)', 'O3_8h含量(ppm)']].corr()
print("AQI与其他因素的相关系数如下:\n", corr)

# 绘制特征相关性热力图
# 设置画布大小
plt.figure(figsize=(17, 14))
# 计算相关系数并赋值给变量 corr
corr = aqi[['AQI', 'PM2.5含量(ppm)', 'PM10含量(ppm)', 'SO2含量(ppm)', 'CO含量(ppm)', 'NO2含量(ppm)', 'O3_8h含量(ppm)']].corr()
# 以热图的形式展示相关性,并用蓝红色调表示,同时在每个方格中显示数值,并设置线宽为1
sn.heatmap(corr, cmap='RdBu_r', annot=True, linewidths=1)
# 设置热图的标题,并设置字体大小为25
plt.title("各污染物之间的特征相关性热力分布图", fontsize=25)
# 设置x轴标签字体大小为15
plt.xticks(fontsize=15)
# 设置y轴标签字体大小为15
plt.yticks(fontsize=15)
# 展示画布
plt.show()




http://www.kler.cn/news/16549.html

相关文章:

  • Linux常见的网络命令
  • ChatGPT技术原理 第五章:GPT模型
  • 《Effective Python 编写高质量Python代码的59个有效方法》学习笔记5
  • mybatis generator自定义model的代码注释
  • 测牛学堂:2023软件测试入门学习指南之测试方法完结总结
  • EMC VPLEX VS2 FRU故障备件更换基本流程
  • JAVA开发——常用的注解
  • 十一、通过六个因素对织物起球等级进行预测
  • 【第十一届泰迪杯B题】最终版:问题一的实现(含源代码)
  • 26从零开始学Java之如何对数组进行排序与二分查找?
  • scratch比大小 中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析2023年3月
  • gRPC入门教程
  • 【Java笔试强训 25】
  • 时序预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络时间序列预测
  • Java 基础入门篇(四)—— 方法的重载与参数传递机制
  • 11.string,stringbuilder,stringbuffer的区别和联系。
  • 5. 操作系统基础
  • windows下定时备份mysql数据库
  • 第 02 章 OSPF实验
  • 【AI前沿】chatgpt还有哪些不足?
  • Python操作PostgreSQL数据库
  • 【学习视频】阅读开源工业软件和工业智能实战上线B站
  • 数字设计小思 - D触发器与死缠烂打的亚稳态
  • 五种最危险的新兴网络攻击技术
  • 《***生态文明思想学习纲要》学习辅导
  • git alias
  • 【Python】【进阶篇】16、settings.py配置文件详解
  • 登录关键字封装
  • 使用树莓派(zero2w + Camera Module 3 支持自动对焦 1200 万像素)拍照
  • JavaSE第三章 访问修饰符,Collection,List