文丨Chris Moffitt
编译丨姜瑞琪
触脉咨询数据分析师
用过python的人都会面临一个问题,尤其是初学者:我应该选哪个来实现数据可视化?
面对众多的选项,要弄清楚什么时候使用哪个的问题没那么容易。
这就是今天分享这篇文章的初衷,通过列举一些使用频率较高的工具,以及使用它们创建简单的条形图的方法,帮助各位进行简单的梳理。
以下就是将要用来创建绘制数据的示例:
- Pandas
- Seaborn
- Ggplot
在示例中,我将使用pandas进行数据处理并使用它来完成可视化的效果。其实,在大多数情况下,可视化工具可以在没有pandas的情况下使用,但pandas+可视化工具的组合很常见,这是一个很好的起始点。
pandas
我通常会用pandas DataFrame开始制作各种绘图的工作。这样有一个优势,就是pandas提供内置的绘图功能,它是matplotlib之上的一层。
首先,导入我们的模块并将数据放入DataFrame中,此外,还将对数据进行排序并让其限制在前10行中。
所有的示例中使用的预算行都相同,以下是导入DataFrame后前5个项目的样子:
我们可以手动设置外观并创建一个条形图:
如果想保存生成的图像,则需要以下的代码:
制作成功后会如下所示:
如果想对Y轴进行更多格式化,则需要一些matplotlib的操作,而不能仅仅通过pandas来实现。
Seaborn
Seaborn是基于matplotlib的可视化库,它能让数据可视化在视觉上更具有吸引力,并且能够很好的与pandas一起使用。
我喜欢用Seaborn的一点就在于它能够快速更改调色板以使其外观更好看。
标准导入并读取数据:
在使用的时候,我发现一件事情就是必须使用x_order明确设置x_axis上项目的顺序。
对这节代码设置顺序,并设置绘图和条形图颜色的样式:
示例中,我们使用matplotlib旋转x轴标题,以便在实际场景中可以阅读。视觉上,显示看起来不错。理想情况下,可以使用matplotlib中的plt.yticks在y轴上设置刻度线的格式。
ggplot
ggplot与Seaborn相似,都是建立在matplotlib之上,并以一种简单的方式优化提升matplotlib可视化的视觉吸引力。但有一点与seaborn不同,它是R的ggplot2端口,因此,某些API是非Python的,但功能非常强大。
继续导入并读取我们的数据:
现在,我们可以通过将几个ggplot命令连接在一起来构建绘图:
通过使用print p可以显示图形。
实操中,确实需要花一些时间才能弄清楚如何将文本旋转90度,以及如何在x轴上排列标签。
我发现scale_y_continous是一个很酷的功能,它能使标签的使用变得更简单。
如果要保存图像,可以使用ggsave轻松进行:
最终生成的图像。
总结:
使用Python绘制数据图表时,选择太多是好事儿也是坏事儿。这意味着我们需要根据要完成的工作找出适合的方法,去确定这些工具能否有用。
这没办法给出一个明确的定义,以此为基准进行选择。以下是我总结的一些想法:
- pandas对于简单的绘制图表很方便,但通常需要搭配matplotlib进行使用。
- seaborn可以支持复杂的可视化方法,在配色方案上也有一定优势。但是,仍需要用matplotlib进行调整。
- ggplot仍然在不断优化。
希望对各位有所帮助~
原文链接:https://pbpython.com/visualization-tools-1.html,有所删减及修改