【数据可视化】Python绘制多子图散点图
·
1、引言
本文将详细介绍如何使用使用 Python语言以及seaborn 和 matplotlib 库来创建多子图散点图。
成品效果
本期内容『数据+代码』已上传百度网盘。有需要的朋友可以关注公众号【小Z的科研日常】,后台回复关键词[散点图]获取。
2、数据读取及处理
我们采用印度中央污染控制局环境空气质量数据进行演示。数据提供了7个城市在2015年至2020年期间的环境空气质量数据,包括了PM2.5、PM10、NO2、CO、SO2、O3、苯、甲苯、二甲苯等多种指标。数据集包含了一些缺失值,需要进行处理。
在数据处理方面,我们首先使用了自定义的函数missing_values_table()来查看每列缺失值的数量和比例,并删除了缺失值过多的列。
city_day = pd.read_csv('city_day.csv')
def missing_values_table(df):
# 缺失值总数
mis_val = df.isnull().sum()
# 缺失值的百分比
mis_val_percent = 100 * df.isnull().sum() / len(df)
# 将结果制作成表格
mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)
# 重命名各列
mis_val_table_ren_columns = mis_val_table.rename(
columns = {0 : '缺失值总数', 1 : '缺失值比例'})
# 按缺失百分比降序排列表格
mis_val_table_ren_columns = mis_val_table_ren_columns[
mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
'缺失值比例', ascending=False).round(1)
# 打印一些汇总信息
print ("数据集共有 " + str(df.shape[1]) + " 列.\n"
"共有 " + str(mis_val_table_ren_columns.shape[0]) +
" 列数据含有缺失值.")
# 返回缺失信息的数据
return mis_val_table_ren_columns
missing_values= missing_values_table(city_day)
missing_values.style.background_gradient(cmap='Reds')
缺失值详情如下表所示:

接着,我们将日期从字符串类型转换为时间类型,以便于后续的时间序列分析。同时,为了更好地观察数据,我们还定义了两个指标:
- BTX:苯、甲苯和二甲苯三种挥发性有机物的总量
- Particulate_Matter:PM2.5和PM10两种颗粒物的总量
# 日期改为时间类型
city_day['Date'] = pd.to_datetime(city_day['Date'])
city_day['BTX'] = city_day['Benzene']+city_day['Toluene']+city_day['Xylene']
city_day.drop(['Benzene','Toluene','Xylene'],axis=1);
3、数据可视化
本实验根据处理后的数据,选用['PM2.5','PM10','NO2','CO','SO2','O3','BTX']七个特征进行可视化。根据可视化图标,可观察不同特征随时间变化趋势等信息。
pollutants = ['PM2.5','PM10','NO2', 'CO', 'SO2','O3', 'BTX']
sns.set()
# city_day.set_index('Date',inplace=True)
axes = city_day[pollutants].plot(marker='.', alpha=0.5, linestyle='None', figsize=(16, 20), subplots=True)
for ax in axes:
ax.set_xlabel('Years')
ax.set_ylabel('ug / m3'

本期[数据 + 代码]已上传,后台回复关键词[散点图]获取。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)