浅谈哪个Python库才最适合做数据可视化
作者:Python学习与数据挖掘 发布时间:2022-12-05 00:34:58
数据可视化是任何探索性数据分析或报告的关键步骤,它可以让我们一眼就能洞察数据集。目前有许多非常好的商业智能工具,比如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 很容易设置和记住代码。然而,这个图表看起来并不好。它可能会完成数据分析的工作,但在商务会议上的结果并不理想。
Seaborn 创造了一个更好的图表。它会自动添加 x 轴和 y 轴标签。x 记号看起来更好,但对于基本图表来说,这比 Matplotlib 要好得多。
Plotly Expres,表现得非常出色。可以用很少的代码创建一个好看的、专业的条形图。不需要设置图形或字体大小。它甚至可以旋转 x 轴标签。所有这些都只需要一行代码。非常令人印象深刻!
Altair 图表表现良好。它提供了一个好看的图形,但它需要更多的代码,它按字母顺序,这并不可怕,而且在很多情况下都会有帮助,但我觉得这应该是用户应该决定的。
编辑和自定义
优胜者:Plotly Express、Seaborn、Matplotlib
失败者:Altair
我相信这四个库都有可能成为赢家。自定义图表在每一个上的表现却是不同的,但我认为,如果你学习足够,你会学会如何创造美丽的可视化。然而,我正在考虑如何容易地编辑和自定义,把自己想象成一个新用户。
Matplotlib 和 Seaborn 非常容易定制,而且它们的文档非常棒。即使你没有在他们的文档中找到要查找的信息,你也很容易在 Stack Overflow 中找到它。他们还有合作的优势。Seaborn 基于 Matplotlib。因此,如果你知道如何编辑一个,你就会知道如何编辑另一个,这是非常方便的。如果你使用
sns.set_style('darkgrid')
设置 Seaborn 主题,它将影响 Matplotlib,这可能就是为什么 Matplotlib 和 Seaborn 是两个更流行的数据可视化库。
plotly express 从一开始就提供了漂亮的图表,例如,与Matplotlib相比,只需要较少的编辑就可以获得非常不错的可视化效果。它的文档很容易理解,他们通过Shift+Tab提供文档,这非常方便。在我尝试的所有库中,它还提供了最多的定制选项。你可以编辑任何东西,包括字体,标签颜色等,最好的部分是它的毫不费力。它的文档中充满了例子。
我发现 Altair 的文件非常混乱。与其他库不同,Altair没有Shift+Tab快捷键。对于初学者来说,这是非常有问题和困惑的。我能够做一些编辑,但找到有关它的信息是有压力的。在编辑方面与我花在 Matplotlib 和 plotly express 上的时间相比,对于初学者来说,Altair 并不是一个很好的选择。
附加功能
获奖者:Plotly Express 和 Altair
失败者:Matplolib 和 Seaborn
对于这一类,我将考虑除了那些我们可以通过代码实现的功能之外的其他功能。Matplotlib 和 Seaborn 在这一类中是非常基本的。除了代码之外,它们不提供任何额外的编辑或交互选项。然而,Plotly Express 在这一类中大放异彩。首先,图表是互动的。您只需将鼠标悬停在图形上,就可以看到有关它的信息。
Altair 提供了一些选项来保存文件或通过Vega编辑器打开JSON文件。
文档和网站
获奖者:Plotly Express、Altair、Seaborn、Matplotlib
所有这些库的文档都很好。Plotly Express 有一个漂亮的网站,带有代码和可视化演示。很容易阅读和找到有关它的信息。我喜欢他们的网站是多么的精致和精心设计,你甚至可以与图表互动。
Altair 的网站上做得很好。他们的定制文档不是最好的,但是网站看起来不错,很容易找到代码示例。我不会说这是惊人的,但它确实起到了作用。
Seaborn 的网站还可以。有人说他们有最好的文件,包含代码示例。如果你正在寻找定制选项,它可能会变得很棘手,但除此之外,它是一个干净的网站,其文档也相当完整。
Matplotlib有一个完整的网站。在我看来,它有太多的文字,找到一些信息可能有点棘手。然而,信息就在那里。他们还提供PDF格式的文档。
来源:https://blog.csdn.net/weixin_38037405/article/details/118271507
猜你喜欢
- PDO::inTransactionPDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, B
- 前言return语句用于退出函数,向调用方返回一个表达式。return在不带参数的情况下(或者没有写return语句),默认返回None。N
- parent.html 中的代码为:<iframe marginwidth="0"
- 导语哈喽!我是木木子,今天又想我了嘛?之前不是出过一期Python美颜相机嘛?不知道你们还记得不?这一期的话话题还是围绕上期关于颜值方面来走
- 在我供职的公司不仅仅拥有Oracle数据库,同时还拥有SQL Server数据库,所以我经常遇见人们向我提两种问题。 第一种通常都是以&qu
- 在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法就实现了这个功能, 可控制发送到网络上
- Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端#! /usr/bin/env py
- 之前写了一个ajax上传工具。但是只是客户端的工具是我写的,服务器端的那个程序,我是修改了一个网上流传的无组件上传类。因为当时我还不懂什么a
- 不知不觉2008已经走到了尽头,在这近一年中,一直不断的尝试用ExtJS做项目,从1.1到现在的2.2,吃了不少苦头,也有不少收获,总结一
- asp代码 如下:读取注册表信息使用了对象WScript.Shell<%Dim strPath strP
- 近日大家热议的盗版XP黑屏问题想必很多人都知道了,在这里就不多说。据媒体报道,微软公司将实施逐步投放策略,预计本周将投放5%黑屏,下周投放2
- 第一种情况是返回的游标是某个具体的表或视图的数据,如:SQL-Code:CREATE OR REPLACE P
- 如果有一个多任务多loss的网络,那么在训练时,loss是如何工作的呢?比如下面:model = Model(inputs = input,
- 简介 函数式编程语言在学术领域已经存在相当长一段时间了,但是从历史上看,它们没有丰富的工具和库可供使用。随着 .NET 平台上的
- 原则, 以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理步骤:1. 掌握几种对象及其关系
- 前言最近在功能性测试的过程中,需要在Python环境下用OpenCV读取网络摄像头的视频流,接着用目标检测器进行视屏帧的后续处理。在测试过程
- 看到php的错误日志里有些这样的提示: [27-Aug-2011 22:26:12] PHP Warning: Cannot use a s
- Python生成随机验证码,需要使用PIL模块,具体内容如下安装:pip3 install pillow基本使用1. 创建图片from PI
- 其中 offset and fetch 最重要的新特性是 用来 分页,既然要分析 分页,就肯定要和之前的分页方式来比较了,特别是 Row_N
- 数据库文件在使用过程中,日志文件会越来越大。小则几个G,大的可能几十上百G都有可能,有时实在是没有必要为它浪费太大的硬盘存储空间。所以可以把