实训1 分析各空气质量指数之间的相关关系及分布情况
1、训练要点
(1)了解scattplot函数的使用格式。
(2)掌握散点图的绘制方法。
(3)了解stripplot函数的使用格式。
(4)掌握分类散点图的绘制方法。
(5)了解distplot函数的使用格式。
(6)掌握单变量分布图的绘制方法。
(7)了解regplot函数的使用格式。
(8)掌握线性回归拟合图的绘制方法。
(9)了解heatmap函数的使用格式
(10)掌握热力图的绘制方法。
2、需求说明
3、实现思路与步骤
(1)使用pandas库读取芜湖市2020年空气质量指数统计数据。
import pandas as pd
# 读取CSV文件
df = pd.read_csv('G:/data/aqi.csv')
# 显示前几行数据,以确保数据已正确读取
# print(df)
print(df.describe(include='all')) # 包括数值型和非数值型列的统计信息
(2)解决中文显示问题,设置字体为黑体,并解决保存图像时负号“-”显示为方块的问题。
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文字体
plt.rcParams['axes.unicode_minus'] = False
# 读取CSV文件
df = pd.read_csv('G:/data/aqi.csv')
# 显示前几行数据,以确保数据已正确读取
# print(df)
print(df.describe(include='all')) # 包括数值型和非数值型列的统计信息
(3)绘制AQI和PM2.5的关系散点图。
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns
# 忽略警告
import warnings
warnings.filterwarnings('ignore')
# 设置 Seaborn 图形样式和中文显示
sns.set_style('whitegrid', {'font.sans-serif': ['SimHei', 'Arial']})
plt.rcParams['font.sans-serif'] = ['SimHei']
# 加载数据,并提取包含 AQI 和 PM2.5 数据的部分
hr = pd.read_csv('G:/data/aqi.csv')
# 假设数据集中AQI列名为'AQI',PM2.5含量列名为'PM2.5'
# 确保选取所有行,但仅包含这两列数据
product = hr[['AQI', 'PM2.5含量(ppm)']] # 请确认列名是否准确
# 绘制AQI与PM2.5关系散点图
ax = sns.scatterplot(x='AQI', y='PM2.5含量(ppm)', data=product)
plt.title('AQI与PM2.5关系散点图')
plt.xlabel('空气质量指数(AQI)')
plt.ylabel('PM2.5浓度(微克/立方米)')
plt.show()
(4)绘制空气质量等级分类散点图。
sale = hr[['质量等级', 'AQI']]
sns.stripplot(data=sale, x='质量等级', y='AQI', jitter=False)
plt.title('2020年芜湖市空气质量等级分类图')
plt.show()
(5)绘制空气质量等级单变量分布图。
import seaborn as sns
# sns.distplot(boston['质量等级'],kde=False) #distplot代码太老旧了,jupyter太高
sns.histplot(data=boston, x='质量等级', kde=False, discrete=True)
plt.title('单变量分布图')
plt.ylabel('数量')
plt.show()
(4)绘制PM2.5浓度与AOI线性回归拟合图。
ax = sns.regplot(x='PM2.5含量(ppm)',y='AQI',data=boston)
ax.set_title('2020年芜湖市空气质量指数PM2.5与AQI回归拟合图')
plt.show()
(5)计算相关系数。
# 确保df中仅包含数值类型列,如有非数值列,请提前移除或转换为数值类型
numeric_df = df.select_dtypes(include=[np.number])
# 计算相关系数矩阵
corr_matrix = numeric_df.corr()
# 输出相关系数矩阵
print(corr_matrix)
(6)绘制空气质量特征相关性热力图。
# 假设 'date_col' 是包含 '2020/1/1' 类似日期字符串的列名
import numpy as np
hr_num = hr.select_dtypes(include=[np.number]) # 选择仅包含数值类型的数据列
corr = hr_num.corr()
sns.heatmap(corr, annot=True)
plt.title('相关性热力图')
plt.show()