Altair-Python的声明性统计可视化库

2020-06-04 12:06:09

Altair是一个用于Python的声明性统计可视化库。有了牛郎星,你可以花更多的时间来理解你的数据和它的意义。牛郎星SAPI简单、友好、一致,并建立在强大的Vega-Lite JSON规范之上。这种优雅的简单性用最少的代码产生漂亮而有效的可视化效果。牛郎星是由杰克·范德普拉斯和布莱恩·格兰杰与UW互动数据实验室密切合作开发的。

以下是使用Altair在JupyterLab中使用本机Vega-Lite渲染器快速可视化和显示数据集的示例:

import Altair as alt#加载一个简单的数据集作为熊猫DataFrame from Vega_Datasets import data ars=data。汽车()ALT。图表(汽车)。mark_point()。编码(x=';马力';,y=';英里_每加仑';,color=';原点';,)。

Altair从Vega-Lite继承而来的一个独特功能是声明性语法,不仅是可视化的,而且是交互的。通过对上面的示例进行一些修改,我们可以创建一个链接的直方图,该直方图根据选择的散点图进行过滤。

将牛郎星作为ALT从Vega_DataSets导入data source=data。Cars()笔刷=Alt。选择(type=';间隔';)点=alt。图表(来源)。mark_point()。编码(x=';马力';,y=';英里_每加仑';,颜色=alt.。条件(画笔,原点,Alt。值(';浅灰色';))。Add_Selection(笔刷)栏=Alt。图表(来源)。mark_bar()。编码(y=';Origin';,color=';Origin';,x=';count(Origin)';)。变换过滤器(画笔)点(&A)条(&F)。

如果您有文档中没有解决的问题,可以通过以下几种方式提问:

Altair提供了一个Python API,用于在声明管理器中构建统计可视化。我们所说的统计可视化是指:

数据源是由不同数据类型(数量、顺序、名义和日期/时间)的列组成的DataFrame。

DataFrame采用整齐的格式,其中行对应于样本,列对应于观察到的变量。

数据被映射到视觉属性(位置、颜色、大小、形状、刻面等)。使用GROUP-BY数据转换。

Altair API不包含实际的可视化呈现代码,而是提供遵循Vega-Lite规范的JSON数据结构。生成的Vega-Lite JSON数据可以在以下用户界面中呈现:

自动生成的内部Python API,它保证可视化是类型检查的,并且完全符合Vega-LitSpecification。

牛郎星可以使用pip或conda进行安装。有关完整的安装说明,请参阅https://altair-viz.github.io/getting_started/installation.html。

我们维护一个单独的Jupyter笔记本Github存储库,其中包含交互式教程和示例:

要使用活页夹或Colab启动包含这些笔记本的实时笔记本服务器,请单击以下徽章之一:

然而,如此繁多的选项给用户带来了极大的困难,因为他们不得不费力地浏览所有这些API,以找出其中哪一个最适合手头的任务。这些库都不是针对高级统计可视化进行优化的,因此用户必须使用混杂的API来组装自己的库。对于刚刚学习数据科学的个人来说,这迫使他们专注于学习API,而不是探索他们的数据。

另一个挑战是,当前的绘图API需要用户编写代码,即使是可视化的附带细节也是如此。这导致了作为可视化类型(直方图、散点图等)的不幸和不必要的认知负担。通常可以使用基本信息(如感兴趣的列和这些列的数据类型)来推断。

例如,如果您对两个数值列的可视化感兴趣,散点图几乎肯定是一个很好的起点。如果向其添加分类列,则可能需要使用颜色或面对该列进行编码。如果推断可视化有时被证明是困难的,那么一个简单的用户界面可以在没有任何编码的情况下构建可视化。Tableau和互动数据实验室的“北极星”和“旅行者”就是这样的用户界面的极好例子。

我们相信,无需创建另一个具有编程API和内置渲染的可视化库,就可以解决这些挑战。Altair构建可视化的方法使用分层设计,该设计充分利用了现有可视化库的全部功能:

这种方法使用户最初可以使用简单得多的API执行探索性可视化,根据他们的使用情况选择合适的渲染器,然后利用该渲染器的全部功能进行更高级的绘图定制。

我们意识到,与Matplotlib、Bokeh等完整的编程API相比,声明性API必然会受到限制。我们认为,为了简化探索性可视化的用户体验,这是一个经过深思熟虑的设计选择。

如果已克隆存储库,请从存储库的根目录运行以下命令:

(如果您正在从源签出运行测试,则可以省略--pyargs标志)。

@文章{VanderPlat2018年,doi={10.21105/joss.01057},URL={https://doi.org/10.21105/joss.01057},年份={2018年},出版商={The Open Journal},卷={3},数量={32},页数={1057},作者={雅各布·范德普拉斯、布莱恩·格兰杰、杰弗里·希尔、多米尼克·莫里茨和卡尼特·翁苏帕萨瓦特、阿文德·萨蒂扬纳拉扬、伊坦·李和伊利亚·蒂莫费耶夫。标题={牛郎星:Python的交互式统计可视化},期刊={开源软件期刊}}

@文章{Satyanarayan2017,作者={Satyanarayan,Arvind和Moritz,Dominik和Wongsuphasawat,Kanit and Heer,Jeffrey},title={Vega-Lite:A Grammar of Interactive Graphics},Journal={IEEE可视化和计算机图形学报},年份={2017},卷={23},数量={1},页数={341-350},出版商={IEEE}}。

牛郎星是水瓶座中最亮的一颗星,与天津四和织女星一起形成了北半球被称为夏季三角的星体。