美文网首页Python
终极Python Seaborn教程

终极Python Seaborn教程

作者: 公子曼步 | 来源:发表于2020-10-09 20:49 被阅读0次

    Seaborn概论

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

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

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

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

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

    —设置自定义调色板。

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

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

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

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

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

    如何学习Seaborn—主动模式:

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

    免费视频教程:www.mlxs.top

    这个过程会让你直觉了解你能用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:

    免费视频教程:www.mlxs.top

    步骤2:导入库和数据集

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

    免费视频教程:www.mlxs.top

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

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

    调用Pandas,用

    调用Matplotlib,用

    调用Seaborn。

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

    免费视频教程:www.mlxs.top

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

    提示:参数索引  index_col=0

    仅仅意味着我们将数据集的第一列作为ID列。

    免费视频教程:www.mlxs.top

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

    第3步:Seaborn的绘图功能

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

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

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

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

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

    免费视频教程:www.mlxs.top

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

    步骤4:用Matplotlib定制

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

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

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

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

    和  xlim()  函数。

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

    免费视频教程:www.mlxs.top

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

    第5步:Pandas的角色

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

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

    免费视频教程:www.mlxs.top

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

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

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

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

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

    免费视频教程:www.mlxs.top

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

    第6步:Seaborn主题

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

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

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

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

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

    免费视频教程:www.mlxs.top

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

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

    步骤7:调色板

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

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

    免费视频教程:www.mlxs.top

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

    免费视频教程:www.mlxs.top

    好多了!

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

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

    免费视频教程:www.mlxs.top

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

    步骤8:叠加图

    答案是肯定的。

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

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

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

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

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

    免费视频教程:www.mlxs.top 免费视频教程:www.mlxs.top

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

    第9步:把它们放在一起

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

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

    免费视频教程:www.mlxs.top

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

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

    首先,数据框要融化。

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

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

    以下是输出:

    免费视频教程:www.mlxs.top

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

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

    免费视频教程:www.mlxs.top 免费视频教程:www.mlxs.top

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

    1.扩大情节。

    2.使用 split()=True

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

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

    5.把图例放在右边。

    免费视频教程:www.mlxs.top 免费视频教程:www.mlxs.top

    最终群体图

    搞定

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

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

    10.1 -热图

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

    免费视频教程:www.mlxs.top


    10.2 - Histogram

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

    免费视频教程:www.mlxs.top


    10.3 条形图

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

    免费视频教程:www.mlxs.top


    10.4因素图

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

    免费视频教程:www.mlxs.top


    10.5密度图

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

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

    免费视频教程:www.mlxs.top


    10.6结合分布图

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

    免费视频教程:www.mlxs.top

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

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

    作者:徐大白   来源:终极Python Seaborn教程

    相关文章

      网友评论

        本文标题:终极Python Seaborn教程

        本文链接:https://www.haomeiwen.com/subject/hrlrpktx.html