目录
介绍
在Python中比较可视化库
Seaborn可视化类型
创建一个条形图
创建Seaborn折线图
评论
有了我们的数据集之后,我们将快速查看可以使用流行的Python库从数据集轻松创建可视化,然后逐步介绍一个可视化示例。
- 下载CSV和数据库文件-127.8 KB
- 下载源代码122.4 KB
本文是使用Python和Pandas进行数据清洗系列的一部分。它旨在利用数据科学工具和技术来使开发人员快速启动并运行。
如果您想查看本系列的其他文章,可以在这里找到它们:
- 第1部分-介绍Jupyter和Pandas
- 第2部分-将CSV和SQL数据加载到Pandas中
- 第3部分-纠正Pandas中的缺失数据
- 第4部分-合并Pandas中的多个数据集
- 第5部分-清理Pandas DataFrame中的数据
- 第6部分-重塑Pandas DataFrame中的数据
- 第7部分-使用Seaborn和Pandas进行数据可视化
现在,我们的数据似乎很干净了,并且有几种不同的潜在视图,我们可以探索可视化选项。可视化是数据清理过程中的最后一个重要步骤,因为它提供了确保数据集有意义的好方法。
请注意,我们已经使用该系列模块的源数据文件创建了完整的Jupyter Notebook,您可以在本地下载和安装。
在Python中比较可视化库有许多Python库可用于可视化数据集。流行的包括Matplotlib,Seaborn,ggplt和Plotly。我们当前使用的库Pandas也具有自己的可视化功能。
那么,您如何选择以及需要什么呢?好吧,这很大程度上取决于您的要求以及您对可视化和Python的舒适程度。
- Matplotlib可能是使用最广泛的库,因为它是最早的可视化库之一,并且功能非常强大。但是,它很复杂,并且在可视化呈现方式中它的年代很明显。
- ggplot是一种绘图系统,从R编程语言移植而来,用于统计和数据挖掘。与Matplotlib相比,ggplot使创建可视化变得更加简单,并且非常擅长分层图。
- Plotly在创建动态和交互式可视化方面表现出色,非常类似于同名的在线平台。
- Seaborn建立在Matplotlib之上,并利用该库的功能,同时简化了制作图表的过程。它还具有许多非常令人愉悦的默认样式,这使从Python数据科学开始的人们更容易创建漂亮的东西。
在我们的案例中,我们将展示一些Seaborn可视化数据集。
Seaborn可视化类型在数据集之上构建可视化文件时,可以选择多种样式。有时,最简单的选项可提供最佳结果,但某些可视化文件适合不同的数据集。
以下是一些更常见的可视化示例:
- 条形图 ——数据的最常见可视化是条形图。当您想拥有不同数据元素的比较视图时,此图表最有用。例如,在条形图中,您可以很容易地看到最大值,最小值或一个或多个值之间的差异。
- 面积图 ——面积图看上去与条形图相似,但是对于显示值的增加和减少更为有用。
- 折线图 ——折线图通常用于表示一些随时间变化的观测值,例如趋势分析,尤其是当这些随时间变化小的情况时。
- 箱形图 ——有时您的数据集不是由简单值组成。箱形图使您可以可视化包含五个数字的摘要:最小值;四分之一;中位数 ;第二四分位 和 最大值。
- 散点图 ——散点图通常将值表示为点,可用于可视化值的分布。
- 内核密度图 ——最后,如果您需要可视化概率密度,则内核密度图可以很好地工作。
这些只是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可以做的事情的表面,因为它将需要整本书来详细介绍它。好消息是,Seaborn的API非常一致。您可以利用在创建简单的折线图和条形图时所学的知识,并将其与Seaborn的一些更高级的可视化结合使用。
此外,Seaborn拥有出色的文档。如果单击Seaborn大型示例库中的任何示例,您将看到显示如何创建可视化效果的代码。
我们研究了Python可用的许多不同的可视化库,以及一系列不同的可视化类型。仅用几行代码,我们在清理后的数据集之上添加了一些有用的可视化。随着数据的更改,我们可以继续重新运行此notebook,以每周、每月甚至每年更新此数据的可视化。我们甚至可以使用此数据集来训练机器学习模型。