- 新增 aqi.csv 文件,包含 2020 年 1 月 1 日至 9 月 27 日的空气质量数据- 数据包括日期、AQI、质量等级以及 PM2.5、PM10、SO2、CO、NO2、O3等污染物含量
142 KiB
142 KiB
None
<html lang="en">
<head>
</head>
</html>
In [1]:
from matplotlib import pyplot as plt
import matplotlib as mpl
import pandas as pd
import seaborn as sns
import warnings
# 忽略所有警告
warnings.filterwarnings("ignore")
In [2]:
# 设置中文字体(macOS 上常见中文字体)
from matplotlib import font_manager as fm
font_path = '/System/Library/Fonts/STHeiti Medium.ttc'
my_font = fm.FontProperties(fname=font_path)
mpl.rcParams['font.family'] = my_font.get_name()
mpl.rcParams['axes.unicode_minus'] = False
In [3]:
data = pd.read_csv('./data/aqi.csv')
data.head(3)
Out[3]:
In [5]:
# 设置图形的大小为宽度 10 英寸,高度 6 英寸,方便后续展示合适大小的图形
plt.figure(figsize=(10, 6))
# 使用 seaborn 库的 stripplot 函数绘制分类散点图
# x 参数指定 x 轴的数据列名为 '质量等级'
# y 参数指定 y 轴的数据列名为 'AQI'
# data 参数指定使用的数据集为之前读取的 data
sns.stripplot(x='质量等级', y='AQI', data=data)
# 设置图形的标题为 '质量等级分类散点图',并使用之前设置好的中文字体
plt.title('质量等级分类散点图', fontproperties=my_font)
# 设置 x 轴的标签为 '质量等级',并使用之前设置好的中文字体
plt.xlabel('质量等级', fontproperties=my_font)
# 设置 y 轴的标签为 'AQI',并使用之前设置好的中文字体
plt.ylabel('AQI', fontproperties=my_font)
# 显示绘制好的图形
plt.show()
In [6]:
# 设置图形的大小为宽度 10 英寸,高度 6 英寸,便于图形的展示
plt.figure(figsize=(10, 6))
# 使用 seaborn 库的 regplot 函数绘制线性回归拟合图
# x 参数指定 x 轴的数据列名为 'PM2.5含量(ppm)'
# y 参数指定 y 轴的数据列名为 'AQI'
# data 参数指定使用的数据集为之前读取的 data
sns.regplot(x='PM2.5含量(ppm)', y='AQI', data=data)
# 设置图形的标题为 'PM2.5 浓度与 AQI 线性回归拟合图',并使用之前设置好的中文字体
plt.title('PM2.5 浓度与 AQI 线性回归拟合图', fontproperties=my_font)
# 设置 x 轴的标签为 'PM2.5 含量(ppm)',并使用之前设置好的中文字体
plt.xlabel('PM2.5 含量(ppm)', fontproperties=my_font)
# 设置 y 轴的标签为 'AQI',并使用之前设置好的中文字体
plt.ylabel('AQI', fontproperties=my_font)
# 显示绘制好的图形
plt.show()
In [7]:
# 选取需要计算相关系数的列,包括 AQI 和各空气质量指标列
selected_columns = ['AQI', 'PM2.5含量(ppm)', 'PM10含量(ppm)', 'SO2含量(ppm)', 'CO含量(ppm)', 'NO2含量(ppm)',
'O3_8h含量(ppm)']
# 使用 pandas 的 corr() 方法计算这些列之间的相关系数
correlation = data[selected_columns].corr()
# 打印计算得到的相关系数矩阵
print(correlation)
In [8]:
# 创建一个新的图形窗口,设置图形大小为宽 10 英寸,高 8 英寸
plt.figure(figsize=(10, 8))
# 使用 seaborn 库的 heatmap 函数绘制热力图
# data 参数传入之前计算得到的相关系数矩阵 correlation
# annot=True 表示在热力图上显示具体的相关系数数值
# cmap='coolwarm' 指定使用的颜色映射,这里使用冷暖色调
sns.heatmap(data=correlation, annot=True, cmap='coolwarm')
# 设置图形的标题为 '空气质量特征相关性热力图',并使用之前设置的中文字体
plt.title('空气质量特征相关性热力图', fontproperties=my_font)
# 显示绘制好的图形
plt.show()