Python Seaborn综合指南,成为数据可视化专家

概述

  • Seaborn是Python流行的数据可视化库
  • Seaborn结合了美学和技术,这是数据科学项目中的两个关键要素
  • 了解其Seaborn作原理以及使用它生成的不同的图表

介绍

一个精心设计的可视化程序有一些特别之处。颜色突出,层次很好地融合在一起,整个轮廓流动,整个程序不仅有一个很好的美学质量,它也为我们提供了有意义的技术洞察力。

这在数据科学中非常重要,因为我们经常处理大量杂乱的数据。对于数据科学家来说,具有可视化的能力是至关重要的。我们的利益相关者或客户将更多地依赖于视觉提示,而不是复杂的机器学习模型。

有大量优秀的Python可视化库可用,包括内置的matplotlib。但Seaborn对我来说很重要。它将美学魅力与技术洞察力无缝地结合在一起,我们很快就会看到这一点。

在本文中,我们将了解什么是seaborn以及为什么应该使用它而不是matplotlib。然后我们将使用seaborn在Python中为数据生成各种不同的可视化。

目录

  • 什么是Seaborn?
  • 为什么应该使用Seaborn而不是matplotlib?
  • 搭建环境
  • 使用Seaborn进行数据可视化
    • 可视化统计关系
    • 用分类数据绘图
    • 可视化数据集的分布

什么是Seaborn?

你曾经在R中使用过ggplot2库吗?它是任何工具或语言中最好的可视化包之一。Seaborn给了我同样的感觉。

Seaborn是一个构建在matplotlib之上的一个非常完美的Python可视化库。

它使我们能够创建放大的数据视觉效果。这有助于我们理解数据,通过在可视上下文中显示数据来发现变量或趋势之间的任何隐藏相关性,而这些相关性最初可能并不明显。与Matplotlib的低级接口相比,Seaborn具有高级接口。

为什么应该使用Seaborn而不是matplotlib?

我一直在谈论Seaborn是多么的棒,所以你可能想知道我为什么这么大惊小怪。

当我们使用seaborn生成图时,我将以实际的方式全面地回答这个问题。现在,让我们快速讨论一下seaborn为什么在matplotlib之上。

Seaborn使我们的图表和绘图看起来很吸引人,并支持一些常见的数据可视化需求(比如将颜色映射到变量或使用分面(faceting))。从根本上说,它使数据可视化和探索变得很容易。相信我,这在数据科学中不是一件容易的事。

如果Matplotlib"试图让简单的事情变得简单,而让困难的事情变得可能",那么seaborn也尝试让一组定义良好的困难事情变得简单。——迈克尔·瓦斯科姆(Seaborn的创始人)

在matplotlib中有几个(很大的)限制是Seaborn已经修复的:

  1. Seaborn提供了大量的高级接口和自定义主题,而matplotlib没有这些接口,因为很难确定哪些设置使图表更吸引人

  2. Matplotlib函数不能很好地处理数据流,而seaborn可以

这第二点在数据科学中很突出,因为我们经常使用数据模型。

搭建环境

seaborn库具有四个必需的必需依赖项:

  • NumPy (>= 1.9.3)
  • SciPy (>= 0.14.0)
  • matplotlib (>= 1.4.3)
  • Pandas (>= 0.15.2)

要安装Seaborn并有效地使用它,首先需要安装前面提到的依赖项。一旦这一步完成,我们都准备安装Seaborn和享受其迷人的绘图。要安装Seaborn,可以使用以下代码

要安装最新版本的seaborn,你可以使用pip:

pip install seaborn

你也可以使用conda安装最新版本的seaborn:

conda install seaborn

要在代码中导入依赖项和seaborn本身,可以使用以下代码

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
from scipy import stats

就是这样!我们都准备好了详细地探索seaborn。

用于数据可视化的数据集

我们将主要处理两个数据集:

  • 人力资源分析(https://datahack.analyticsvidhya.com/contest/wns-analytics-hackathon-2018-1/)
  • 预测投票数(https://datahack.analyticsvidhya.com/contest/enigma-codefest-machine-learning-1/)

之所以选择这两个,是因为它们包含多个变量,因此我们有很多选择可以使用。这两个数据集还可以模拟现实情况,因此你将了解数据可视化和了解业内的数据可视化方式。

你可以在DataHack平台上查看这个和其他高质量的数据集。因此,请在继续之前下载上述两个数据集。我们将一起使用它们。

使用Seaborn进行数据可视化

让我们开始吧!我已将此实现部分分为两类:

  • 可视化统计关系
  • 绘制分类数据

我们将研究每个类别的多个示例,以及如何使用seaborn对其进行绘制。

可视化统计关系

统计关系表示理解数据集中不同变量之间的关系以及这种关系如何影响或依赖于其他变量的过程。

在这里,我们将使用seaborn生成以下图:

  • Scatter plot (散点图)
  • SNS.relplot
  • Hue plot (Hue图)

我选择了预测投票数数据集。所以,让我们导入数据集:

df = pd.read_csv(r"train.csv")
df.head()

使用Seaborn绘制散点图

散点图可能是可视化两个变量之间关系的最常见的例子。每个点在数据集中显示一个观察值,这些观察值用点状结构表示。图中显示了两个变量的联合分布。

为了绘制散点图,我们将使用seaborn库的relplot()函数。它是可视化统计关系的图形级角色。默认情况下,使用relplot会生成散点图:

sns.relplot(x="Views", y="Upvotes", data = df)

Seaborn的SNS.relplot

SNS.relplot是来自SNS类的relplot函数,SNS类是我们在上面与其他依赖项一起导入的一个seaborn类。

这里,参数是x、y数据有在X,Y轴上表示的变量和我们要分别画出来的数据点,通过图片,我们发现了viewsupvotes之间的关系。

接下来,如果我们想要看到与数据相关的标签,我们可以使用下面的代码:

sns.relplot(x="Views", y="Upvotes", hue = "Tag", data = df)

Hue图

我们可以在色调(Hue)的帮助下在我们的图片中添加另一个维度,通过为点赋予颜色来实现,每种颜色都有一些附加的意义。

在上图中,色调代表是样本类别,这就是为什么它有一个不同的颜色。如果色调代表的只是数字,那么色调就应该是连续的(因为数字是连续的,样本类别不是连续的)。

sns.relplot(x="Views"
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值