时间序列模型决定了预测的准确性,良好的可视化展示能为模型效果增益。Seaborn因其高兼容性和交互性,在时间序列数据可视化设计中独占优势。

我们选取科赛网上公开的1965-2016全球重大地震数据集,分享Seaborn中heatmap、timeseries以及regression function的使用。

「1965-2016全球重大地震数据集」说明

由美国国家地震中心收集,记录了全世界所有显著地震的地点和震级(自1965年报告的震级为5.5以上地震的发生日期,时间,位置,深度,大小和来源数据)。

import pandas as pd
import numpy as np
data = pd.read_csv('earthquake.csv')
data.head()
复制代码

seaborn中的plot function:

  • heatmap: 用颜色矩阵去显示数据在两个维度下的度量值
  • tsplot: 用时间维度序列去展现数据的不确定性
  • regplot: 用线性回归模型对数据做拟合
  • residplot: 展示线性回归模型拟合后各点对应的残值
data['Date'] = pd.to_datetime(data['Date'])
data['Year'] = data['Date'].dt.year
data['Month'] = data['Date'].dt.month
data = data[data['Type'] == 'Earthquake']复制代码


Countplot

我们可以先用Countplot作图,看一看在1965-2015年间,每年各有多少次地震。

import
warnings
warnings.filterwarnings("ignore")
import
seaborn as sns
import
matplotlib.pyplot as plt
%matplotlib
inline
plt.figure(1,figsize=(12,6))
Year
= [i for i in
range(1965,2017,5)]
idx
= [i for i in
range(0,52,5)]
sns.countplot(data['Year'])
plt.setp(plt.xticks(idx,Year)[1],rotation=45)
plt.title('Earthquake counts in history from year 1965 to year
2016')
plt.show()复制代码


heatmap

其次,我们可以按年、月份制作热力图(heatmap),观察近十年的地震记录,

热力图的特点在于,定义两个具有意义的dimension,看数据在这两个dimension下的统计情况,完成对比分析。

test
= data.groupby([data['Year'],data['Month']],as_index=False).count()new = test[['Year','Month','ID']]
temp
= new.iloc[-120:,:]
temp
= temp.pivot('Year','Month','ID')
sns.heatmap(temp)
plt.title('Earthquake happened in recent 10 years')
plt.show()
复制代码


timeseries

也可以利用时间序列图(timeserise),探究以年为单位地震次数趋势。

temp
= data.groupby('Year',as_index=False).count()
temp
= temp.loc[:,['Year','ID']]
plt.figure(1,figsize=(12,6))
sns.tsplot(temp.ID,temp.Year,color="r")
plt.show()
复制代码

regression

可以对以年为单位的地震记录作线性回归拟合。以下两张图分别对应一阶线性回归拟合、拟合后残值分布情况图。

plt.figure(figsize=(12,6))
plt.subplot(121) sns.regplot(x="Year", y="ID",
data=temp,order=1) # default by 1plt.ylabel(' ')
plt.title('Regression fit of earthquake records by year,order = 1')plt.subplot(122)
sns.residplot(x="Year", y="ID",
data=temp)
plt.ylabel(' ')
plt.title('Residual plot when using a simplt regression
model,order=1')
plt.show()复制代码

也可以尝试二阶拟合:

plt.figure(figsize=(12,6))
plt.subplot(121)
sns.regplot(x="Year", y="ID",
data=temp,order=2) # default by 1plt.ylabel(' ')
plt.title('Regression fit of earthquake records by year,order = 2')plt.subplot(122)
sns.residplot(x="Year", y="ID",
data=temp,order=2)
plt.ylabel(' ')
plt.title('Residual plot when using a simplt regression
model,order=2')plt.show()复制代码

或者针对地震记录中的深度Depth、强度Magnitude做线性拟合。

plt.figure(figsize=(12,6))
plt.subplot(121)
sns.regplot(x="Year", y="Depth",
data=data,x_jitter=.05,
x_estimator=np.mean,order=3)
plt.ylabel(' ')
# x_estimator是一个参数,相当于对每年地震记录中参数取平均值,探究平均值的趋势
plt.title('Regression fit of depth,order = 3')plt.subplot(122)
sns.regplot(x="Year", y="Magnitude",
data=data,x_jitter=.05,
x_estimator=np.mean,order=3)
# x_estimator是一个参数,相当于对每年地震记录中参数取平均值,探究平均值的趋势
plt.title('Regression fit of magnitude,order=3')
plt.show()
复制代码

Seaborn可视化系列

Seaborn可视化学习之Categorial Visualization

Seaborn可视化学习之Distribution Visualization

由科赛推出的K-Lab在线数据分析协作平台,已经为你集成Python3、Python2、R三种主流编程语言环境,同步内置100+常用数据分析工具包(包括本文分享的Seaborn)。官网也聚合了丰富的数据资源,可直接登录kesci.com,任选数据集,尝试用Seaborn或其他工具包开展数据分析。

Python可视化:Seaborn(三)相关推荐

  1. Python可视化 | Seaborn(01)

    kdeplot和distplot的介绍: #入门---kdeplot和distplot import numpy as np #导入numpy包,用于生成数组 import seaborn as sn ...

  2. Python可视化:Seaborn(二)

    本文由 保一雄@科赛网 数据分析师 原创. Seaborn是一个很棒的可视化库,尤其是当数据维度很大时,它可以让我们用最少的代码去绘制一些描述性统计的图,便于找寻各维度变量之间的特征. 继上篇Pyth ...

  3. [转载] python可视化分析(matplotlib、seaborn、ggplot2)

    参考链接: Python Matplotlib数据可视化2 python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库1.基本绘图命令3.图形参数设置 ...

  4. python boxplot orient,Python可视化 | Seaborn5分钟入门(三)——boxplot和violinplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  5. python可视化分析(matplotlib、seaborn、ggplot2)

    python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库 1.基本绘图命令 3.图形参数设置 4.特殊统计图的绘制 4.1 数学函数图 4.2 气泡 ...

  6. Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn)

    Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn) 目录

  7. python中seaborn画swarm图_Python可视化 | Seaborn5分钟入门(四)——stripplot和swarmplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  8. python线性回归可视化_【Python可视化5】Seaborn之线性回归

    Seaborn是基于matplotlib的Python可视化库.它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更 ...

  9. python 条形图与线图的图例_【Python可视化2】Seaborn之条形图与点线图

    原标题:[Python可视化2]Seaborn之条形图与点线图 Seaborn是基于matplotlib的Python可视化库.它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在ma ...

  10. 【书签】数据可视化(三)- Seaborn简易入门

    数据可视化(三)- Seaborn简易入门 转载于:https://www.cnblogs.com/aaronhoo/p/10039016.html

最新文章

  1. 牛客网里刷题:JS获取输入的数组
  2. 高速串行自同步方式介绍及原理
  3. systemd的程序自启动脚本编写
  4. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round A
  5. 猫狗识别——PyTorch
  6. phpcms避免字段值重复
  7. Maximal Rectangle
  8. 唯美动态个人404错误页面html源码
  9. 「译」MotionLayout 介绍 (part II)
  10. 微信小程序“信用卡还款”项目实践
  11. 通过外挂插件向预训练语言模型中融入知识
  12. 高性能集群软件Keepalived之安装配置篇
  13. pycharm汉化包下载
  14. 网易云计算机系统有限公司,网易云音乐
  15. Java适配器模式(转接口)
  16. 掌握一门计算机语言需要多长时间,学习一门语言需要多长时间?科学告诉你
  17. 【扫描线】火星探险-线段树
  18. 颤抖吧,理科生们,让你们看看文科帝!
  19. php获取动态ts文件,2018-07-08 ts-php 提取succ
  20. 探索设计之路-Photoshop【移动选框工具】

热门文章

  1. java代码ftp重命名未生效_java实现FTP远程文件移动(重命名、复制、拷贝) | 学步园...
  2. tm是什么域名_入驻天猫,需要什么条件?
  3. 福师计算机应用基础期末,福师2015计算机应用基础》期末试卷A123
  4. c语言因为是汇编语言的一种,. C语言是一种(). A.机器语言B.汇编语言C.中级语言D.高...
  5. 简述工业机器人示教再现的一般步骤_基于激光焊缝跟踪传感器的工业机器人焊缝跟踪系统的应用焊接寻位...
  6. ubuntu中提示找到make命令的解决方案
  7. 使用Keras实现鸢尾花分类
  8. Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表
  9. VB案例:素数判断与合数分解
  10. 【BZOJ4035】数组游戏,博弈论+分块乱搞