导入所需的库:
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.charts import WordCloud
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
需求一:(1)读取AQI.csv数据。
代码:
AQI_data = pd.read_csv('D:/sjfx/aqi.csv')
AQI_data
运行结果:
需求二:(2)绘制质量等级分类散点图。
散点图(Scatter Diagram)又称为散点分布图,是以一个特征为横坐标,以另一个特征为纵坐标,利用坐标点(散点)的分布形态反映这两个特征间的统计关系的一种图形。值由点在图形中的位置表示,类别由图形中的不同标记表示,通常用于比较跨类别的数据。
散点图可以提供两类关键信息,具体内容如下。
(1)特征之间是否存在数值或数量的关联趋势,关联趋势是线性的还是非线性的。
(2)如果某一个点或某几个点偏离大多数点,那么这些点就是离群值,通过散点图可以一目了然,从而可以进一步分析这些离群值是否在建模分析中产生较大的影响。散点图可通过散点的疏密程度和变化趋势表示两个特征的数量关系。如果有3个特征,且其中一个特征为类别型特征,散点图可改变该特征的点的形状或颜色,即可了解两个数值型特征和这个类别型特征之间的关系。pyplot中绘制散点图的函数为scatter。
代码:
plt.figure(figsize=(10,6))
plt.subplot(121)#分布位置
plt.xticks(rotation=70)#倾斜度
sns.stripplot(x='质量等级',y='AQI',data=AQI_data)
plt.title('质量等级分类散点图')
运行效果图:
需求三:(3)绘制PM2.5浓度与AQI线性回归拟合图。
代码:
fig,axes=plt.subplots(1,2,figsize=(8,4))
axes[0].set_title('修改前PM2.5浓度与AQI线性回归拟合图')
axes[1].set_title('修改后PM2.5浓度与AQI线性回归拟合图')
sns.regplot(x='PM2.5含量(ppm)',y='AQI',data=AQI_data,ax=axes[0])
sns.regplot(x='PM2.5含量(ppm)',y='AQI',data=AQI_data,ci=50,ax=axes[1])
plt.show()
运行效果图:
需求四:(4)计算相关系数,绘制空气质量特征相关热力图。
热力图(Heat Map)通过颜色的深浅表示数据的分布,颜色越浅数据越大,读者可以从中一眼就分辨出数据的分布情况,非常方便。在seaborn库中,可以使用heatmap函数绘制热力图。
代码:
corr=AQI_data[['AQI','PM2.5含量(ppm)','SO2含量(ppm)','PM10含量(ppm)']].corr ()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('空气质量特征相关热力图')
plt.show()
运行效果图: