使用Seaborn和Pandas进行数据可视化

目录

介绍

在Python中比较可视化库

Seaborn可视化类型

创建一个条形图

创建Seaborn折线图

评论


有了我们的数据集之后,我们将快速查看可以使用流行的Python库从数据集轻松创建可视化,然后逐步介绍一个可视化示例。

介绍

本文是使用PythonPandas进行数据清洗系列的一部分。它旨在利用数据科学工具和技术来使开发人员快速启动并运行。

如果您想查看本系列的其他文章,可以在这里找到它们:

现在,我们的数据似乎很干净了,并且有几种不同的潜在视图,我们可以探索可视化选项。可视化是数据清理过程中的最后一个重要步骤,因为它提供了确保数据集有意义的好方法。

请注意,我们已经使用该系列模块的源数据文件创建了完整的Jupyter Notebook,您可以在本地下载和安装。

Python中比较可视化库

有许多Python库可用于可视化数据集。流行的包括MatplotlibSeabornggpltPlotly。我们当前使用的库Pandas也具有自己的可视化功能。

那么,您如何选择以及需要什么呢?好吧,这很大程度上取决于您的要求以及您对可视化和Python的舒适程度。

  • Matplotlib可能是使用最广泛的库,因为它是最早的可视化库之一,并且功能非常强大。但是,它很复杂,并且在可视化呈现方式中它的年代很明显。
  • ggplot是一种绘图系统,从R编程语言移植而来,用于统计和数据挖掘。与Matplotlib相比,ggplot使创建可视化变得更加简单,并且非常擅长分层图。
  • Plotly在创建动态和交互式可视化方面表现出色,非常类似于同名的在线平台。
  • Seaborn建立在Matplotlib之上,并利用该库的功能,同时简化了制作图表的过程。它还具有许多非常令人愉悦的默认样式,这使从Python数据科学开始的人们更容易创建漂亮的东西。

在我们的案例中,我们将展示一些Seaborn可视化数据集。

Seaborn可视化类型

在数据集之上构建可视化文件时,可以选择多种样式。有时,最简单的选项可提供最佳结果,但某些可视化文件适合不同的数据集。

以下是一些更常见的可视化示例:

  1. 条形图 ——数据的最常见可视化是条形图。当您想拥有不同数据元素的比较视图时,此图表最有用。例如,在条形图中,您可以很容易地看到最大值,最小值或一个或多个值之间的差异。
  2. 面积图 ——面积图看上去与条形图相似,但是对于显示值的增加和减少更为有用。
  3. 折线图 ——折线图通常用于表示一些随时间变化的观测值,例如趋势分析,尤其是当这些随时间变化小的情况时。
  4. 箱形图 ——有时您的数据集不是由简单值组成。箱形图使您可以可视化包含五个数字的摘要:最小值;四分之一;中位数 ;第二四分位  最大值。
  5. 散点图 ——散点图通常将值表示为点,可用于可视化值的分布。
  6. 内核密度图 ——最后,如果您需要可视化概率密度,则内核密度图可以很好地工作。

这些只是Seaborn可以创建的更受欢迎的可视化文件中的一些。Seaborn的文档站点也有大量的示例库。我们将使用数据集查看两种不同的可视化效果,即条形图和折线图。

尽管这两种可视化只是Seaborn所包含内容的一小部分,但重要的部分是了解Seaborn API并观察其直接从Pandas DataFrame中提取数据的难易程度。一旦了解了如何使用Seaborn绘制简单的图表,便可以开始研究并使用库的更高级的可视化工具。

创建一个条形图

我们将从本系列前面的文章中创建的Pandas DataFrames中获取数据。如果您想了解如何创建这些DataFrame,请随时返回并阅读整个系列。快速,有趣的阅读!

但是,如果您已经熟悉Pandas DataFrames,则无需阅读该系列。您已经知道理解以下代码示例所需的一切。

为了展示一个简单的条形图,让我们看一下在重塑数据步骤结束时按状态DataFrame创建的总购买量的可视化。我们已经在notebook的开头导入了Seaborn并使用以下代码进行设置:

import seaborn as sns
sns.set(style="darkgrid")

如果我们开始一个新的代码块并添加以下内容:

plt.figure(figsize=(20,10))
stateTotalsChart = sns.barplot(data=totalsData, x='state',y='amount')
stateTotalsChart.set_xticklabels(stateTotalsChart.get_xticklabels(), rotation=45, horizontalalignment='right')

生成的条形图如下所示:

这三行代码完成了三件事。首先,它通过设置figsize来使默认图表大一些。第二行使用barplot创建实际的条形图,并将数据设置为总计数据,状态为x轴,数量为y轴。最后,最后一行通过旋转x轴标签稍微改善了它们。这使可视化效果看起来非常好,并且只花了三行代码。

创建Seaborn折线图

为了展示折线图,我们将创建一个新的摘要DataFrame,其中的数据按购买日期分组。创建一个新的代码块并添加以下内容:

purchasesByDay = combinedData.groupby(by='purch_date').sum().reset_index()
purchasesByDay.drop(columns=['purchase_id','customer_id','product_id'], inplace=True)
print(purchasesByDay.head(10))

这将创建一个新的DataFrame,其中汇总了当天的已售商品数量,已付款额和零售成本。

现在,我们可以启动另一个新的代码块并创建折线图:

plt.figure(figsize=(20,10))
dailyTotalsChart = sns.lineplot(data=purchasesByDay, x='purch_date',y='amount')

图表如下:

这次我们只需要两行,第一行设置图表的大小,并且由于x轴是日期序列,Seaborn正确地总结了x轴,第二行创建了随时间推移的购买总额的图表。这使我们可以非常轻松地用很少的代码行来创建有用的图。

评论

我们只涉及了Seaborn可以做的事情的表面,因为它将需要整本书来详细介绍它。好消息是,SeabornAPI非常一致。您可以利用在创建简单的折线图和条形图时所学的知识,并将其与Seaborn的一些更高级的可视化结合使用。

此外,Seaborn拥有出色的文档。如果单击Seaborn大型示例库中的任何示例,您将看到显示如何创建可视化效果的代码。

我们研究了Python可用的许多不同的可视化库,以及一系列不同的可视化类型。仅用几行代码,我们在清理后的数据集之上添加了一些有用的可视化。随着数据的更改,我们可以继续重新运行此notebook,以每周、每月甚至每年更新此数据的可视化。我们甚至可以使用此数据集来训练机器学习模型。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值