大数跨境
0
0

Python编程入门系列课程—12 二氧化碳浓度的变化情况探究

Python编程入门系列课程—12 二氧化碳浓度的变化情况探究 蘑菇云创造
2021-06-03
2
导读:《Python编程入门系列教程》12课时已全部更新完啦!

点击 蘑菇云创造 关注我们


二氧化碳浓度的变化情况探究


写在前面

Hi,大家好,本期是《Python编程入门系列课程》连载的最后一期(共12课时),全部教程已完结。非常感谢一直在关注和学习该套教程的老师、同学们。

希望大家在学习的同时,也为我们的系列课程多多提出宝贵建议,针对大家提出的意见和想法,我们将会进行仔细评估和采纳,后续也将继续为大家提供更多系统化的教程和优质的课程~


动动小手扫码,说出您的想法哈


扫一扫


一、学习背景



经过上节课的学习,我们了解了数据分析相关的概念、分类,也重点学习了回归分析法。本节课,我们依旧将结合python对数据进行处理与分析,来解决生活中的一些实际问题。


二、学习目标



本实践项目通过编写python程序来探究特定条件下空气中二氧化碳浓度的变化情况。


知识目标:

1、了解数据可视化的含义

2、掌握数据可视化常见的图表类型

3、掌握图表上基本功能的使用


技能目标:

1、掌握利用软件工具对数据进行可视化操作的方法


三、学习准备



1、电脑

2、mind+编程软件


核心概念


1)数据可视化

数据可视化指以图形、图像、动画等方式直观、生动地呈现数据及数据分析结果,揭示数据之间的关系、趋势和规律等,便于人们更好地理解数据。


2)数据可视化工具

python语言的matplotlib库是提供数据绘图功能的第三方扩展库,其ptplot子库主要用于实现各种数据图表的绘制,它不仅可以方便地制作基本的视觉元素(点、线、面)构成的图,如散点图、折线图、柱状图,还可以绘制多维热力图、box箱型图、hist直方图、pie饼图、area面积图等。


由matplotlib生成的图表可以有以下一些基础特征,

l 画板figure,指画纸sublpot,可多图绘画

l 标题title,用来给图形起名字

l 坐标轴Axis,其中xlabel指x轴,ylabel指y轴

l 图例Legend,指图表符号,是表达图表内容的一种形式和方法

l 网格Grid,指图形中的虚线,可隐藏

l 点Markers,线条line,可由图表生成相应的散点图、折线图等

l 主要刻度Major tick,次要刻度minor tick,指图表中的刻度



对于生成的图形,我们还可以对它进行特定的操作,图示如下:



四、学习实践



想一想

 

    早上来到学校,老师有时要求我们做的第一件事并不是打开书本,而是打开窗户,这是为什么呢?

    事实上,这和教室空气中二氧化碳(CO2)的浓度气息相关。教室里的植物经过一夜的呼吸作用会消耗大量的氧气,放出大量的二氧化碳气,致使空气中的二氧化碳浓度增高,而二氧化碳浓度高到一定的程度之后就会使我们引起身体的不适。


在本项目中,我们将分两步,来探究一下在特定的温度下,密闭空间内,空气中二氧化碳的浓度的变化情况是怎样的,与哪些因素有关。


1、探究密闭空间内二氧化碳浓度变化与时长的关系。

2、探究密闭空间内二氧化碳浓度变化与人数的关系。 


阅读材料

二氧化碳

空气中除了我们赖以生存的氧气以外也有很多很多不同的物质组成,其中就包含了一些会影响我们健康的物质比如二氧化碳,二氧化碳(CO₂)本身没有毒性,当他们浓度较低时不会对我们的身体产生影响,但当空气中的CO₂超过正常含量时,会对人体产生有害的影响,使人无法呼吸。尤其是室内环境,在封闭的环境中,二氧化碳可能会久久停留不易散出。





任务1:探究二氧化碳浓度变化与时长的关系


我们已经知道空气中二氧化碳的浓度会随着时间的增加而增高。那么在相同的背景条件下,浓度是不断均匀增加的吗,它的增速与时长有何关系呢?这里我们将对此进行探究。通过它,我们可以学习柱状图的绘制。为此,我们将分两步进行。首先是采集并整理数据,之后对数据进行可视化操作并分析数据。


1、数据采集与整理

在这个任务中,我们通过传感器检测了温度为20℃的晚上,在密闭房间内(无植物)人数分别为1,3,5的情况下二氧化碳浓度的数据情况,测得的数据我们保存在csv格式文件中。(见附录1)


为了避免人数对实验的影响,这里我们取人数为1时的数据,进而探究二氧化碳浓度与时长的关系。


2、数据可视化与分析

为了便于对数据进行读取和分析,我们依旧通过编写程序将采集整理好的数据以图表形式呈现出来。


这里我们将采用顺序结构的方式编写程序。具体流程如下:



在正式编写程序代码之前,我们首先要创建一个项目文件及python程序文件。


STEP1:创建与保存项目文件

    启动Mind+,另存项目并命名为“二氧化碳浓度的变化情况探究”。


STEP2:创建与保存python文件

    创建一个python程序文件“任务一.py”,双击打开。


STEP3:导入数据文件“CO2浓度数据”(见附录1)



STEP4:编写程序


# -*- coding: utf-8 -*-

import pandas as pd#导入pandas库并用pd来表示

import matplotlib.pyplot as plt#导入matplotlib库中的函数集合

CO2 = pd.read_csv("CO2浓度数据.csv",encoding='gb18030')#导入csv格式表格数据

plt.rcParams['font.sans-serif'] = ['SimHei']#设置中文字体

plt.title("二氧化碳浓度变化情况")#绘制标题

plt.ylabel("二氧化碳浓度")#绘制x轴标签

plt.xlabel("时间")#绘制y轴标签

x_data=CO2.iloc[0:24:3,0]#选取表格第一列,人数为1的数据并设其为柱状图中的x轴

y_data=CO2.iloc[0:24:3,2]#选取表格第三列,人数为1的数据并设其为柱状图中的y轴

plt.bar(x_data,y_data)#绘制柱状图

plt.show()#显示图像


STEP5:运行程序并分析数据


运行程序,我们看到csv表格中的数据以柱状图的形式呈现了出来。



观察图表并分析数据,我们发现,开始时空气中二氧化碳浓度在500ppm(百万分比浓度),随后每隔一个小时,浓度确实都在不断增高,但速度不同,前期时单位时间内的浓度增速较快,后期则相对较慢。因此,通过上图我们可以得出,在相同条件下的密闭空间中,二氧化碳浓度并不是均匀增高的,时间越久,增速越低。


知识链接

序列的切片

能说明    切片操作是访问序列中元素的一种方式,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。

使用方法    name[start:end:step]

参数说明如下,

name:表示序列的名称;

start:表示切片的开始位置,如果不指定,则默认为0;

end:表示切片的截止位置,如果不指定,则默认未序列的长度;

step:表示切片的步长,如果省略,则默认为1.当省略该步长时,最后一个冒号也可以省略。

举例说明    程序中,

x_data=CO2.iloc[0:24:3,0]#选取表格第一列,人数为1的数据并设其为柱状图中的x轴

y_data=CO2.iloc[0:24:3,2]#选取表格第三列,人数为1的数据并设其为柱状图中的y轴

由于人数为1的数据分别在表格中的第2,5,8...23行,因此,这里在选取行数时,使用“0:24:3”的形式,表示从表格第2行开始选到第25行,中间每隔两行选一个数据。



Matplotlib链接

bar()函数

能说明    bar()函数能绘制柱状图

使用方法    matplotlib.pyplot.bar(x,y, 可选参数),其中可选参数有很多,这里我们不一一介绍了

举例说明    程序中,

x_data=CO2.iloc[0:24:3,0]#选取表格第一列,人数为1的数据并设其为柱状图中的x轴

y_data=CO2.iloc[0:24:3,2]#选取表格第三列,人数为1的数据并设其为柱状图中的y轴

plt.bar(x_data,y_data)#绘制柱状图

表示以x_data中的数据为x轴,y_data中的数据为y轴绘制柱状图。



任务2:探究二氧化碳浓度变化与人数的关系


在这个任务中,我们将探究密闭空间中二氧化碳浓度与人数之间的关系。通过它,我们可以学习折线图的绘制。由于用到的数据文件不变,因此,我们主要进行数据可视化和分析即可。


1、数据可视化与分析

为了便于对数据进行读取和分析,我们通过编写程序将采集整理好的数据以折线图形式呈现出来。


这里我们将采用顺序结构的方式编写程序。具体流程如下:



STEP1:创建与保存python文件

创建一个python程序文件“任务二.py”,双击打开。


STEP2:编写程序


向上滑动阅览

# -*- coding: utf-8 -*-

import pandas as pd#导入pandas库并用pd来表示

import matplotlib.pyplot as plt#导入matplotlib库中的函数集合

CO2 = pd.read_csv("CO2浓度数据.csv",encoding='gb18030')#导入csv格式表格数据

plt.rcParams['font.sans-serif'] = ['SimHei']#设置中文字体

plt.title("不同人数下二氧化碳浓度情况")#绘制标题

plt.ylabel("二氧化碳浓度")#绘制x轴标签

plt.xlabel("时间")#绘制y轴标签

x_data=CO2.iloc[0:24:3,0]

y_data=CO2.iloc[0:24:3,2]

x_data1=CO2.iloc[1:24:3,0]

y_data1=CO2.iloc[1:24:3,2]

x_data2=CO2.iloc[2:24:3,0]

y_data2=CO2.iloc[2:24:3,2]

plt.plot(x_data,y_data,color='red',label="人数为1",linewidth=2.0,linestyle='--')#绘制折线,并设置折线的颜色、标签、线宽和线型

plt.plot(x_data1,y_data1,color='blue',label="人数为3",linewidth=2.0,linestyle='--')

plt.plot(x_data2,y_data2,color='yellow',label="人数为5",linewidth=2.0,linestyle='--')

plt.legend()#显示图例

plt.show()#显示图像

 

STEP3:运行程序并分析数据


(1)运行程序,我们看到csv表格中的数据以图表的形式呈现了出来。



(2)观察上图,我们可以清楚地发现,在同一时间点,人数越多,二氧化碳浓度也越高。


(3)放大0-1和6-7时间段




小结

    本实验中,在特定条件下的密闭空间内,二氧化碳浓度会随着时间的增加而增高,并且时间越久,增速越低。同样的,人数与二氧化碳浓度的增加也有着正相关的关系,人数越多,浓度越高。


五、巩固提高



项目回顾

本节课我们首先探究了二氧化碳浓度变化与时长的关系,之后探究了人数对它的影响。经过对图表数据的可视化操作及分析,我们得出结果,随着时间的增加,密闭房间内空气中二氧化碳浓度并不是均匀增加的,并且人数的增多也会使浓度增高。


知识小结

1、数据可视化的含义

2、常见的可视化图表:散点图、折线图、柱状图等


项目拓展

尝试将表格中人数为3和5情况下的数据以柱形图的形式呈现出来吧!


附录

附录1

数据文件

链接:

https://pan.baidu.com/s/1Nxb3R30V5drDkacPjBgcWA

提取码:khje


附录2

拓展阅读

数据可视化的基本分类

有关时间趋势的可视化

有关比例的可视化

有关关系的可视化

有关差异的可视化

有关空间关系的可视化

 

拓展阅读

数据可视化工具

数据可视化形式多样,实现数据可视化的工具也越来越多,按照用途及表现形式,可以分为以下几大类别,

图表类工具

词云可视化工具

地图类工具

专家级工具

WPS表格、EXCEL等

Tagul、Tagxedo等

Modest Maps等

R、Gephi、Weka等








推荐阅读:



点击 “ 阅读原文 ”,下载附件!

【声明】内容源于网络
0
0
蘑菇云创造
蘑菇云是DFRobot旗下专注于AI人工智能、创客、STEAM、劳动教育的科技创新教育品牌;以为中国培养下一代科技创新人才为使命,为学校提供k12全龄段科技创新教育解决方案。
内容 969
粉丝 0
蘑菇云创造 蘑菇云是DFRobot旗下专注于AI人工智能、创客、STEAM、劳动教育的科技创新教育品牌;以为中国培养下一代科技创新人才为使命,为学校提供k12全龄段科技创新教育解决方案。
总阅读1.9k
粉丝0
内容969