Seaborn介绍:

Seaborn属于Matplotlib的一个高级接口,为我们进行数据的可视化分析提供了极大的方便。

Step 1:安装Seaborn

首先确定你的电脑已安装以下应用
- Python 2.7+ or Python 3
- Pandas
- Matplotlib
- Seaborn
- Jupyter Notebook(可选)

打开Jupyter Notebook, 过几秒钟会弹出网页窗口Home。

点击右侧的New,新建一个Notebook,弹出一个新的网页窗口,点击上方可命名文件。

Step 2:加载库和数据文件

加载pandas、matplotlib、seaborn。

这里提供了一个数据文件,下载链接为:
Pokemon.csv

用pandas读取数据文件,并显示前五行。

编译后的结果为一个列表。

Step 3:Seaborn的绘图功能

Seaborn最大的优点之一在于其种类繁多的绘图功能,下面我们利用lmplot()函数,用一行代码来绘制散点图。

我们希望x轴显示Attack数据,y轴显示Defense数据,则可以编写代码。

事实上seaborn并没有专门用来绘制散点图的功能,实际上我们用它来拟合和绘制回归线。
这里写图片描述” title=”“>

幸运的是,我们可以通过设置函数的参数来得到我们想要的散点图。用fit_reg = False 移去回归线,用hug参数来用不同颜色显示Pokemon进化阶段的信息。

即刻得到散点图:

从散点图可以看出,所有的数据点都分布在数轴的正半轴,然而散点图的数轴从负数开始的,我们可以对它进行改进。

Step 4:用Matplotlib定制

虽然Seaborn是Matplotlib的一个高级接口,但是我们有时候也需要用到Matplotlib。其中包括设置数轴的范围。

我们利用Matplotlib的ylim()和xlim()函数来设置数轴的范围。

可以得到只显示正部分的散点图。

Step 5:Pandas的作用

尽管这是一个Seaborn教程,pandas依然在实际应用中起到了十分重要的作用。

下面我们根据Pokemon的攻击数据来绘制箱形图。

得到的箱形图:

很好,这是一个良好的开端,但是我们可以移除不需要的几列数据。

  • 移除掉Total,因为我们有独立的统计数据。

  • 移除掉Stage跟Legendary,因为它们不是攻击统计数据。

    我们可以创建一个新的数据集stats_df,满足我们上述的要求。

得到了一个改进了的箱形图。

Step 6: Seaborn 主题

Seaborn的另一个好处就是其恰到好处、开箱即用的风格主题。其默认的主题为“darkgrid”

下一步,我们把主题改为“whitegrid”来创建一个小提琴图

  • 小提琴图常常作为箱形图的替代

  • 小提琴图通过小提琴的厚度展示了数据的分布,而不仅仅是总结数据。

    根据Pokemon的主要类型,我们可以将Attack数据的分布可视化。

可以得到小提琴图,x轴显示的是Pokemon的Type1,y轴显示的是不同Pokemon的攻击数值。

我们很容易就可以看出,Dragon类型常常具备高攻击值,但是不同个体间的差异也很大。

Step 7: 调色盘

Seaborn可以根据我们的需求,来设置颜色。我们可以创建一个python命令列表,用颜色的十六进制数值来设置。数值可以在Bulbapedia中寻找。

就能得到一个颜色重新设置过的小提琴图。

为了能够让数据文件中的151个Pokemon都能够在图中简单展示,我们可以用群集图 swarm plot达到这一目的。

可以得到151个数据点在群集图上的分布,不同点代表不同的Pokemon。

Step 8: 图形重叠

我们已经绘制出了小提琴图和群集图,Seaborn允许我们将这两张图整合在一张图上,步骤如下:

  • 首先,我们用Matplotlib设置图形比例。
  • 然后,我们绘制小提琴图,用inner = None将小提琴中间的木杆移去。
  • 接着,我们绘制群集图,并将数据点的颜色变为黑色。
  • 最后,我们可以用Matplotlib设置一个标题。

其中alpha为透明度。
编译后可以得到如下图形。

现在我们可以清晰的看到不同Pokemon的攻击值了。那么我们怎么看其他的数值呢?

Step 9: 融合数据

为了展现其他的数据,我们当然可以重复以上的步骤,绘制多张图。但是我们同样也可以在一张图上表示所有的数据,这时候pandas就派上用场了。

我们可以利用pandas的melt()函数来将一些数据进行融合,这样就可以在不同Pokemon之间直接进行比对,melt()需要导入3个参数,分别为:

  1. 需要融合的数据列表
  2. 需要保留的ID变量,其他变量将会被Pandas融合。
  3. 融合而成的新变量的名字。

显示前五行的数据可以看到,六列数据已经融合成为一列Stat,数值在value一列中显示。而实际上Stat已经包含了原来列表中的六列数据。

我们为已经融合的数据列表melted_df绘制群集图。

就可以得到如下的群集图。x轴为Stat中融合的六个变量,y轴为Stat的值,不同颜色代表不同的Pokemon Type 1。

这张图表有一些细节需要完善:

  1. 扩大图表。

  2. 使用split = True 来分隔色调。

  3. 使用我们自定义的颜色。

  4. 调整y轴的范围

  5. 将图例放在右侧。

    即可得到一个已经细节完善后的图表。

Step 10: 迷你画廊

10.1-Heatmap
Heatmap可以帮助可视化矩阵状的数据。

10.2-Histogram
Histogram能够绘制变量的数值分布。

可以清楚的看到Pokemon的攻击值的分布。

10.3-Bar Plot
条形图可以帮助分类变量的可视化。

可以清楚的看到不同类型的Pokemon的数量。

10.4-Factor Plot
Factor plots能够根据类别分离图表。

可以得到根据Stage分离的三个图表,分别用不同颜色的点表示不同的Pokemon。

10.5-Density Plot
密度图显示的是两个变量之间的分布。

曲线越密集的地方说明两个变量的关系越近,越稀疏的地方说明关系越远。

10.6-Joint Distribution Plot
联合分布图将散点图和直方图的信息结合起来,提供双变量分布的详细信息。


更详细的请移步官网 or 一窗星乱银河静

python 数据分析 - Seaborn相关推荐

  1. python数据分析 | seaborn绘图学习

    seaborn绘图学习 1 seaborn介绍和安装 2 关系型绘图 3 分类绘图 3.1 分类散点图 3.2 分类分布图 3.3 分类统计图 3.4 分布绘图 4 线性回归绘图 5 综合 1 sea ...

  2. python中seaborn是什么_Python数据分析之seaborn常用方法

    Python数据分析之seaborn常用方法 %matplotlib inline import matplotlib as mpl from matplotlib import pyplot as ...

  3. 一本Python数据分析入门宝藏书,快藏不住了!

    入门数据分析最简单的途径就是去学习 Python 生态系统中,最流行也是最基础的库之一:Pandas,尤其对于从 Excel 转向 Python 的朋友来说,从效率到功能会发现很多惊喜. 为什么要使用 ...

  4. 介绍一本零基础入门Python数据分析的书

    大家好,我是 Lemon. 有不少读者在询问如何入门Python.如何入门Python数据分析,之前跟大家分享了两本零基础入门Python的书籍:<Python编程从入门到实践> 和< ...

  5. python数据分析常用包_python可视化数据分析常用图大集合(收藏)

    python数据分析常用图大集合:包含折线图.直方图.垂直条形图.水平条形图.饼图.箱线图.热力图.散点图.蜘蛛图.二元变量分布.面积图.六边形图等12种常用可视化数据分析图,后期还会不断的收集整理, ...

  6. 如何自学python数据分析-良心整理!学习Python数据分析的正确姿势

    学习 Python 数据分析的正确姿势 如果你是通过学习给程序员设计的 Python 课程来学习 Python 数据分析,那就大错特错了.很多数据分析师在开始学习 Python 数据分析之前就被引导学 ...

  7. python 数据分析学什么-数据分析培训学习多久?都学什么?

    数据分析培训学习多久?以博学谷的Python数据分析与应用课程为例,学习数据分析只要22课时.那么都学什么呢?内容大概包括了Python数据分析的相关知识.感兴趣的小伙伴可以一起来看看课程介绍. 1. ...

  8. python数据分析的主要流程-Python数据分析全流程实操指南

    内容全面:借助5大Python工具库,实现数据分析从获取到建模全流程覆盖: 贴合实际:不空讲Python语法,清晰简明地介绍如何用Python来处理.分析数据: 热点案例:覆盖6大热点应用领域,可直接 ...

  9. [译] Web 爬虫下的 Python 数据分析:中情局全球概况图解

    原文地址:Data Analytics with Python by Web scraping: Illustration with CIA World Factbook 原文作者:Tirthajyo ...

最新文章

  1. 2020各省份大学排名出炉!
  2. R语言dataframe数据列格式转换(从整型integer转化为浮点型float)
  3. Oracle专家调优秘密
  4. 美团高德并不是解决快车问题的灵药,烧完钱之后只会产生新的滴滴
  5. IOS控件的应用UIPageController与UIScrollView
  6. angular语言前端开发_web前端开发入门全套学习方法路径,兼职在家做网站也能月入上万...
  7. oracle ogg11.2.0.3,ogg在oracle database 11.2.0.3上还是谨慎使用集成捕捉模式
  8. sql服务器时间不正确,使用更改 CPU 频率的实用工具或技术时,SQL Server 计时值可能不正确...
  9. 存储过程(简单入门)
  10. 自己应该如何不断学习呢?
  11. 【原创】MySql常见出错解决
  12. linux与windows文件共享——samba
  13. 装x玩法:插上你的专有U盘才能开机
  14. win10系统显示打印机未连接到服务器,win10系统连接打印机提示“打印处理器不存在”如何解决...
  15. 【Java进阶】到底什么是抽象?
  16. Vue 中获取 package.json 信息
  17. Kyligence Zen 产品体验 — “人人都是数据分析师”
  18. 脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计一
  19. 合阔智云核心生产系统切换到服务网格 ASM 的落地实践
  20. 微信支付签名失败(几种解决方案)

热门文章

  1. 面试题:说说maven 以及打包命令
  2. Vuetify下载图片的问题探究
  3. innblock | InnoDB page观察利器
  4. Unity异步加载关卡
  5. GPS数据格式的分析
  6. 乙酰化赖氨酸抗体,助力生物调节和功能研究
  7. 计算机网络——使用广播信道的数据链路层
  8. 这些育儿经,80%的父母不知道!
  9. int java 字节数_javaInt占几个字节
  10. Java面试题库,2021大厂Java面试题精选