浅谈哪个Python库才最适合做数据可视化


Posted in Python onJune 28, 2021

数据可视化是任何探索性数据分析或报告的关键步骤,它可以让我们一眼就能洞察数据集。目前有许多非常好的商业智能工具,比如Tableau、googledatastudio和PowerBI,它们可以让我们轻松地创建图形。

然而,数据分析师或数据科学家还是习惯使用 Python 在 Jupyter notebook 上创建可视化效果。目前最流行的用于数据可视化的 Python 库:Matplotlib、Seaborn、plotlyexpress和Altair。每个可视化库都有自己的特点,没有完美的可视化库,我们应该知道每种数据可视化的优缺点,找到适合自己的才是关键。

准备

首先,让我们导入所有重要的库。很可能你的计算机上已经安装了 Matplotlib 和 Seaborn 。但是,你可能没有Plotly Express 和 Altair。现在可以使用 pip install plotly==4.14.3和pip install altair 数据集轻松安装它们。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import altair as alt
import plotly.express as px

现在我们将导入数据集。出于演示的目的,我们只创建一个数据框架,其中包含美国人口最多的15个城市。我还将修正城市名称的大写。当我们创建可视化效果时,它将促进编辑过程。

df = pd.read_csv('worldcitiespop.csv')
us = df[df['Country'] == 'us']
us['City'] = us['City'].str.title()
cities = us[['City', 'Population']].nlargest(15, ['Population'], keep='first')

现在我们应该准备好分析每个库。你准备好了吗?

设置难度和初始结果

获胜者:Plotly Express
失败者:Matplotlib、Altair和Seaborn

在这一类中,所有的库都表现良好。它们都很容易设置,基本编辑的结果对大多数分析都足够好,但我们需要有赢家和输家,对吗?

Matplotlib 很容易设置和记住代码。然而,这个图表看起来并不好。它可能会完成数据分析的工作,但在商务会议上的结果并不理想。

浅谈哪个Python库才最适合做数据可视化

Seaborn 创造了一个更好的图表。它会自动添加 x 轴和 y 轴标签。x 记号看起来更好,但对于基本图表来说,这比 Matplotlib 要好得多。

浅谈哪个Python库才最适合做数据可视化

Plotly Expres,表现得非常出色。可以用很少的代码创建一个好看的、专业的条形图。不需要设置图形或字体大小。它甚至可以旋转 x 轴标签。所有这些都只需要一行代码。非常令人印象深刻!

浅谈哪个Python库才最适合做数据可视化

Altair 图表表现良好。它提供了一个好看的图形,但它需要更多的代码,它按字母顺序,这并不可怕,而且在很多情况下都会有帮助,但我觉得这应该是用户应该决定的。

浅谈哪个Python库才最适合做数据可视化

编辑和自定义

优胜者:Plotly Express、Seaborn、Matplotlib
失败者:Altair

我相信这四个库都有可能成为赢家。自定义图表在每一个上的表现却是不同的,但我认为,如果你学习足够,你会学会如何创造美丽的可视化。然而,我正在考虑如何容易地编辑和自定义,把自己想象成一个新用户。

Matplotlib 和 Seaborn 非常容易定制,而且它们的文档非常棒。即使你没有在他们的文档中找到要查找的信息,你也很容易在 Stack Overflow 中找到它。他们还有合作的优势。Seaborn 基于 Matplotlib。因此,如果你知道如何编辑一个,你就会知道如何编辑另一个,这是非常方便的。如果你使用

sns.set_style('darkgrid')

设置 Seaborn 主题,它将影响 Matplotlib,这可能就是为什么 Matplotlib 和 Seaborn 是两个更流行的数据可视化库。

浅谈哪个Python库才最适合做数据可视化

浅谈哪个Python库才最适合做数据可视化

plotly express 从一开始就提供了漂亮的图表,例如,与Matplotlib相比,只需要较少的编辑就可以获得非常不错的可视化效果。它的文档很容易理解,他们通过Shift+Tab提供文档,这非常方便。在我尝试的所有库中,它还提供了最多的定制选项。你可以编辑任何东西,包括字体,标签颜色等,最好的部分是它的毫不费力。它的文档中充满了例子。

浅谈哪个Python库才最适合做数据可视化

我发现 Altair 的文件非常混乱。与其他库不同,Altair没有Shift+Tab快捷键。对于初学者来说,这是非常有问题和困惑的。我能够做一些编辑,但找到有关它的信息是有压力的。在编辑方面与我花在 Matplotlib 和 plotly express 上的时间相比,对于初学者来说,Altair 并不是一个很好的选择。

附加功能

获奖者:Plotly Express 和 Altair
失败者:Matplolib 和 Seaborn

对于这一类,我将考虑除了那些我们可以通过代码实现的功能之外的其他功能。Matplotlib 和 Seaborn 在这一类中是非常基本的。除了代码之外,它们不提供任何额外的编辑或交互选项。然而,Plotly Express 在这一类中大放异彩。首先,图表是互动的。您只需将鼠标悬停在图形上,就可以看到有关它的信息。

浅谈哪个Python库才最适合做数据可视化

Altair 提供了一些选项来保存文件或通过Vega编辑器打开JSON文件。

浅谈哪个Python库才最适合做数据可视化

文档和网站

获奖者:Plotly Express、Altair、Seaborn、Matplotlib

所有这些库的文档都很好。Plotly Express 有一个漂亮的网站,带有代码和可视化演示。很容易阅读和找到有关它的信息。我喜欢他们的网站是多么的精致和精心设计,你甚至可以与图表互动。

浅谈哪个Python库才最适合做数据可视化

Altair 的网站上做得很好。他们的定制文档不是最好的,但是网站看起来不错,很容易找到代码示例。我不会说这是惊人的,但它确实起到了作用。

浅谈哪个Python库才最适合做数据可视化

Seaborn 的网站还可以。有人说他们有最好的文件,包含代码示例。如果你正在寻找定制选项,它可能会变得很棘手,但除此之外,它是一个干净的网站,其文档也相当完整。

浅谈哪个Python库才最适合做数据可视化

Matplotlib有一个完整的网站。在我看来,它有太多的文字,找到一些信息可能有点棘手。然而,信息就在那里。他们还提供PDF格式的文档。

浅谈哪个Python库才最适合做数据可视化

总结

我在本文中分析的四个目前都非常棒的库。所有的可视化库都有优缺点,找好合适自己的才是关键。我最喜欢的是 Plotly Express ,因为它在所有类别中都表现出色。不过,Matplotlib 和 Seaborn 更受欢迎,大多数人都会在电脑上安装它们。Altair 是我最不喜欢之间。你最喜欢的数据可视化库是什么呢?

到此这篇关于浅谈哪个Python库才最适合做数据可视化的文章就介绍到这了,更多相关Python 数据可视化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
200行python代码实现2048游戏
Jul 17 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python中使用.py配置文件的方法详解
Nov 23 Python
python 用opencv实现霍夫线变换
Nov 27 Python
python opencv通过4坐标剪裁图片
Jun 05 Python
总结Python变量的相关知识
详解非极大值抑制算法之Python实现
Python实现生活常识解答机器人
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Python移位密码、仿射变换解密实例代码
Pytest中conftest.py的用法
Python实现8种常用抽样方法
You might like
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP的5个安全措施小结
2012/07/17 PHP
解析php入库和出库
2013/06/25 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
基于Python实现扑克牌面试题
2019/12/11 Python
python3爬取torrent种子链接实例
2020/01/16 Python
linux 下selenium chrome使用详解
2020/04/02 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
初中班主任评语
2014/04/24 职场文书
员工自我工作评价
2015/03/06 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书