114 11案例掌握Python数据可视化-美国气候研究

自哥本哈根气候大会以来,世界越来越关注气候变化和温室效应,并在会后建立了全球碳交易市场,分阶段、分批地减少碳排放。本实验获取了美国1979-2011日平均最高气温和降雨量的美国国家航空航天局,研究并可视化了气候相关指标的变化规律和关系。

输入并执行神奇的命令%matplotlib inline,并删除图例边框。

数据集介绍:

这个数据集的特征包括美国的49个州,它们的区域,统计年,统计月,平均日照,平均日最高气温,平均日最高热指数(平均日最高热指数),平均日降雨量(平均日降雨量)和平均日地表温度(Avg日地表温度)。

每个特性的年间隔是:

导入数据并查看前5行。

筛选美国主要地区的主要气候指数,通过sns.distplot接口绘制指数分布图。

根据运行结果:

美国各地的日照分布趋势大致相同,有两个明显的峰值(强光照和弱光照)。这是因为非赤道国家受地球公转的影响,四季光照强度会呈现一定的周期性变化规律;

从地理位置可以看出,东北地区的光槽明显低于其他三个地区;

美国各地日平均最高气温差异较大,东北部和中西部的趋势大致相同,气温平台期较长,峰值显著。西部地区温和期最长,全年最高气温相对稳定;南方的分布相对更集中;

日平均陆面温度与最高气温相近,不同的是其低温区分布较少。

西部最大热指数的分布与中西部地区一致,气温温和,热指数东北高,南方低;

西部降雨量明显较小,南部和东北部大致相同,中西部地区相对较多。

结合地理知识做一个总结:

东北和中西部大部分地区属温带大陆性气候,四季分明,夏季闷热,雨量较多。

西部属于温带地中海气候,全年气候温和,干燥少雨,夏季气候温和,最高气温相对稳定。

在南部沿海,气候全年温暖,夏季炎热,雨水充沛。

按月计算美国各地区降雨量的平均值和标准差,以平均值一倍的标准差绘制各地区降雨量误差图。

根据运行结果:

夏季大部分月份,西部地区的降雨量比其他地区少很多;

中国西部冬季月降雨量高于夏季。

中西部地区属于典型的温带大陆性气候,秋冬季降雨量减少,春夏季降雨量增加。

南部地区倾向于海洋性气候,年降雨量相对平均。

你需要安装joypy软件包。

日平均最高气温变化趋势

通过joypy包的joyplot接口,可以绘制具有叠加效应的垂直分布曲线,每四年绘制一次日平均最高气温1980-2008,标注25%和75%分位数。

根据运行结果:

1980-2008年期间,美国日平均最高气温分布的低温区逐渐增加,高温区逐渐减少,分布趋于更加集中;

1980-2008年期间,美国日平均最高气温的25%分位数和75%分位数有一点偏差,但不明显。

日平均降雨量变化趋势

以同样的方式处理降雨数据并检查输出结果。

筛选出加州和纽约的日平均降雨量数据,通过plt.hist接口绘制降雨量月分布图。

根据运行结果:

加州降雨量多集中在0-1 mm范围内,很少有暴雨。相比之下,纽约雨量充沛,日平均降雨量分布在2-4毫米的范围内

直方图在累积效应下会被大部分细节覆盖,表达聚集和分散效应的箱线图在这类问题中可能是更好的选择。

通过sns.boxplot界面绘制加州和纽约月降雨量分布的箱线图。

从箱线图上可以清楚的对比出两个州每个月的降雨量分布,可以看出集中的程度。比如加州7月份的降雨量集中在0.1-0.5毫米的狭窄范围内,说明这个时候不会有什么暴雨;我们也可以看到离散的情况。比如1月份的加州,箱线图的箱型部分分布较广,其上方约10 mm处有一个离散点,说明此时加州可能会出现偶发性暴雨。

视觉上,摆动误差折线图更美观简洁。在“全美降雨量月分布”实验中,所有类别标签的X位置都放在同一个地方,导致误差线高度重叠。通过调整X坐标位置,可以紧凑地排列要比较的序列。

从输出结果可以看出,加州冬季降雨的不确定性更强。每年11月至次年3月有强降雨现象,雨量多而少(误差线长)。

以上实验都是在研究单个变量的分布,但往往,我们想知道任意两个变量的联合分布有什么特征。

核密度估计是研究这类问题的主要方法之一。sns.kdeplot接口通过高斯核函数计算两个变量的核密度函数,并以等高线的形式绘制核密度。

根据运行结果:

高温区和少雨期(高温少雨夏季)加州有明显的高密度分布区;

纽约州高温区和低温区都有一个高密度分布区,不同温度区的降雨量分布比较均匀。

通过plt.hist2d界面可视化美国各地的降雨量和气温。

根据运行结果:

美国最高密度日平均高温区和降雨区分别约为78°F(约25°C)和2.2 mm,属于相对舒适的生活气候区。

全美国降雨量和气温的关系——核密度估算

在上述实验的基础上,通过sns.rugplot接口分别在X轴和Y轴上绘制核密度估计的一维分布图,可以在一个绘图平面上同时得到联合分布和单变量分布的特征。

美国各地降雨量和气温的关系——分散分布和直线分布

Sns.jointplot接口通过网格以子图的形式绘制单变量分布,通过散点图展示双变量关系,也是展示数据分布的好方法。

上面两个实验研究了二元分布的可视化,下面研究三个变量聚合结果的可视化。

通过sns.heatmap接口可以实现透视数据的可视化。其原理是对透视结果的值赋予不同的色块来可视化其值,并通过色条工具量化其值。

以上两个实验直观地呈现了各州日最高气温中值随年份的变化趋势,从图中看并无明显变化。

让我们用t检验的方法来检验统计上是否有显著差异。Stats.ttest_ind接口可以输出1980和2010中主要气候指标的显著性检验统计量和P值。

从运行结果可以看出:

检验结果否定了原来的降雨量相等的假设,即美国的降雨量在1980和2010之间是不同的,没有否定原来的日平均日照和日平均最高气温相等的假设,说明气温没有明显变化。