终极Python Seaborn教程

徐大白
3个月前 阅读 143 点赞 4

这篇手把手Seanborn教程中,您将学习如何使用Python最方便的库来进行数据可视化。

对于那些以前修补过Matplotlib的人来说,您可能想知道,“为什么要用10行代码才能做出一个看起来像样的直方图?”

如果你在寻找一种更简单的方法来绘制吸引人的图表,那么你会喜欢Seaborn。我们将带您浏览开始时需要了解的所有内容,我们将使用一个有趣的Pokémon数据集

 

Seaborn概论

Seaborn为Matplotlib提供了一个高级接口,它是一个功能强大但有时笨拙的Python可视化库。

在Seaborn的官方网站上,他们声明:

如果matplotlib“试图让简单的事情变得容易,让困难的事情变得可能”,那么Seaborn试图使一系列明确的困难事物也容易。


我们发现这是对Seaborn强项的一个很好的总结。在实践中,“一系列明确的困难事物”包括:

—使用美学上令人愉悦的默认主题。

—设置自定义调色板。

—制作有吸引力的统计图。

—简易且灵活地显示分布。

—从矩阵和数据帧可视化信息。


最后三点是为什么Seaborn是我们探索性分析的首选工具。它使你很容易快速而有效地“了解”你的数据。

然而,Seaborn是Matplotlib的补充,而不是替代品。有些调整仍然需要Matplotlib,我们还将讨论如何做到这一点。


如何学习Seaborn—主动模式:

Seaborn在Python中简化了数据可视化,但仍有许多特点。因此,学习Seaborn的最好方法就是做中学。

这个过程会让你直觉了解你能用Seaborn做什么,留下文档作为进一步的指导。这是从零到熟练的最快的方法。


在我们开始之前给一个提示:

我们试图使本教程尽可能精简,这意味着我们不会太多的细节,任何一个主题。如果你想了解更多关于一个特性的信息,可以打开Seaborn文档


Seaborn教程内容

我们将介绍Seaborn库最重要的范例,而不是仅仅向您展示如何制作一堆绘图。此外,我们将举例说明每个概念。

以下是我们将在本教程中介绍的步骤:

——安装Seaborn

——导入库和数据集

——Seaborn的绘图功能

  • 散点图

——用Matplotlib定制

——Pandas的角色

  • 箱形图

——Seaborn主题

  • 小提琴图表

——调色板。

  • 群体图

——叠加图

——把它们放在一起

——Pokédex(迷你画廊)。

  • 热图
  • 直方图
  • 条形图
  • 因子图
  • 密度图
  • 联合分布图


第1步:安装Seaborn

首先,第一件事:加油,打气,安装起来吧!

接下来,确保您的计算机上安装了以下内容:

——Python 2.7 + 或 Python 3

——Pandas

——Matplotlib

——Seaborn

——Jupyter Notebook(可选,但推荐)


我们强烈建议安装Anaconda分发,其中包含所有这些扩展包。只需按照下载页面上的说明操作即可。

安装了Anaconda之后,只需启动Jupyter(通过命令行或Navigator应用程序)并打开一个新notebook:

步骤2:导入库和数据集

让我们开始导入Pandas,它是管理关系(即表格式)数据集的一个很好的库:

接下来,我们将导入Matplotlib,这将有助于我们进一步定制我们的绘图。

  • 提示:在Jupyter笔记本中,你也可以内含来显示你的notebook里的绘图


现在我们准备导入数据集。

  • 提示:我们给每个导入的库一个别名。然后,我们可以用调用Pandas,用调用Matplotlib,用调用Seaborn。

今天,我们将使用一个很酷的Pokémon数据集(第一代)。这里是免费下载

一旦下载了CSV文件,就可以将它与Pandas一起导入。

  • 提示:参数索引仅仅意味着我们将数据集的第一列作为ID列。

下面是数据集:

正如你所看到的,我们有原始数据151(A.K.best151)Pokémon。

 

第3步:Seaborn的绘图功能

绘图功能的多样性是Seaborn最大的优点之一。例如,散点图只是使用lmplot()函数的一行代码。

有两种方法可以做到这一点。

—第一种方法(推荐)是将DataFrame传递给data=参数,同时将列名传递给axes参数,x=和y=。

—第二种方法是直接将数据序列传递给轴参数。

例如,让我们比较一下我们的Pokémon的攻击和防御状态:

顺便说一下,Seaborn没有专用的散点图函数,这就是为什么你看到是一条对角线。我们用Seaborn函数拟合和绘制回归线。

值得庆幸的是,每个绘图函数都有几个有用的选项可以设置。下面是我们如何调整lmplot():

1.首先,我们将设置FITZeRe= false来删除回归线,因为我们只需要散点图。

2.然后,我们将设置色相=“舞台”来着色我们的点,由波克蒙的进化阶段。这个色调参数非常有用,因为它允许你用颜色来表达信息的第三个维度。

看起来更好,但是我们可以进一步改进这个散点图。例如,我们所有的Pokémon都有正面攻击和防御值,但是我们的轴限制在零度以下。让我们看看我们怎样才能解决这个问题…


步骤4:用Matplotlib定制

记住,Seaborn是Matplotlib的高级接口。从我们的经验来看,大部分情况下会使用Seaborn,但有时你需要带上Matplotlib。

设置轴限制是其中之一,但过程很简单:

首先,调用您的海运绘图功能为正常。

然后,调用Matplotlib的定制函数。在这种情况下,我们将使用它的函数。

这里是我们的新的散点图与敏感轴限制:

有关MaMattLIB定制功能的更多信息,请查看其文档。


第5步:Pandas的角色

尽管这是一个Seaborn教程,Pandas实际上扮演着非常重要的角色。你看,Seaborn的绘图功能是从一个合理格式化的基本数据框中受益。

例如,假设我们想为我们的Pokémon的战斗状态做一个方块图:

这是一个合理的开始,但是有些栏目我们可能想删除:

1.我们可以删除总数,因为我们有单独的统计数据。

2.我们可以删除舞台和传奇栏目,因为它们不是战斗统计。

事实证明,这并不容易在Seaborn单独进行。相反,对数据文件进行预格式化要简单得多。

让我们创建一个新的数据名为,它只保留统计列:

在本教程的范围之外,潜入大熊猫,但这里有一个方便的作弊表


第6步:Seaborn主题

Seaborn的另一个优点是它带有正派风格的主题。默认主题称为“暗网格”。

接下来,我们将把主题改为“白色网格”,同时制作小提琴绘图。

1.小提琴绘图在替代方框图方面非常有用。

2.他们显示的分布(通过小提琴的厚度),而不是仅汇总统计。

例如,我们可以通过Pokémon的主要类型来可视化攻击的分布:

正如你所看到的,龙型往往具有比幽灵类型更高的攻击统计,但它们也有较大的差异。

现在,Pok -艾蒙的粉丝们可能会发现一些关于这个情节的不和谐的东西:颜色是荒谬的。为什么草型是彩色粉色还是水彩型橙色?我们必须解决这个问题!

 

步骤7:调色板。

幸运的是,Seabn允许我们设置定制的调色板。我们可以简单地创建一个有序的Python颜色十六进制值列表。

让我们使用BulPaula来帮助我们创建一个新的调色板:

完美,现在我们可以简单地使用参数来重新调整我们的图表。

好多了!

小提琴图是伟大的可视化分布。但是,由于我们的数据集中只有151个PoEKMON,所以我们可以简单地显示每个点。

这就是群集阴谋发生的地方。这个可视化将显示每个点,而“堆叠”具有相似值的那些:

这很方便,但是我们不能把我们的群体图和小提琴图结合起来吗?毕竟,它们显示相似的信息,对吧?


步骤8:叠加图。

答案是肯定的。

使用Seaborn覆盖绘图非常简单,它与Matplotlib的工作方式相同。这就是我们要做的:

首先,我们将使用Matplotlib使我们的图形更大。

然后,我们将绘制小提琴图。然而,我们将设置没有删除小提琴内的条形。

接下来,我们将绘制群体图。这一次,我们将使点黑色,所以他们弹出更多。

最后,我们将使用Matplotllib设置标题。

真棒,现在我们有一个漂亮的图表告诉我们攻击值是如何分布在不同的Pokémon类型。但我们还想看到其他所有的统计数据呢?

 

第9步:把它们放在一起。

当然,我们可以为每个状态重复图表,但是我们也可以把这些信息组合成一个图表。我们只需要事先做一些与熊猫争吵的数据。

首先,这是一个提醒我们的数据格式:

正如你所看到的,我们所有的统计数据都在不同的列中。相反,我们想把它们“融化”成一列。

要做到这一点,我们将使用熊猫的函数。它需要3个参数:

首先,数据框要融化。

第二,保持变量(Pandas将融化所有其他)。

最后,命名为新的熔化变量。

以下是输出:

所有6个属性列都被“融化”为一个,新的属性列指示原始属性(HP、攻击、防御、Sp.攻击、Sp.防御或速度)。例如,这里很难看到,但是Balbasuro现在有6行数据。

事实上,如果你打印这两个数据框的形状…

你会发现的行数是的6倍。

现在我们可以用制作一个群集图。

但是这次,我们将设置,因此我们的群被状态分隔开来。

然后,我们将设置来用Pokémon类型来着色我们的点。

最后,让我们为一个更可读的图表做一些最后的调整:

1.扩大情节。

2.使用

3.使用我们自定义的Pokemon调色板。

4.调整Y轴限制在0结束。

5.把图例放在右边。

最终群体图

搞定


第10步: Pokédex(迷你图库)。

我们将以一些快速数据可视化来结束本教程,只是为了让您了解Seaborn的可能。


10.1 -热图

HealMaPS帮助你可视化矩阵式数据。


10.2 - Histogram

直方图允许您绘制数值变量的分布。


10.3 条形图

条形图帮助您可视化分类变量的分布。


10.4因素图

因子图可以很容易地通过分类类来划分情节。


10.5密度图

密度图显示了两个变量之间的分布。

  • 提示:考虑用散点图覆盖这个。


10.6结合分布图

联合分布图结合了来自散布图和直方图的信息,为您提供了双变量分布的详细信息。

祝贺你,到这里你已经完成了这个Python Seaborn教程!

我们刚刚结束了一个重要的Seaborn范例,并向你们展示了很多例子。随意使用这一页连同官方Seaborn图库作为您的项目前进的参考。

| 4
登录后可评论,马上登录吧~
评论 ( 1 )
像徐大神学习
回复
1个月前