Python声明式统计可视化库 altair-GitHub鉴赏官

推荐理由:Vega-Altair是 Python 的声明式统计可视化库。借助 Vega-Altair,您可以花更多时间来理解数据及其含义。Vega-Altair 的 API 简单、友好且一致,建立在强大的 Vega-Lite JSON 规范之上。这种优雅的简单性可以用最少的代码产生漂亮而有效的可视化效果。Vega-Altair 最初由Jake VanderplasBrian GrangerUW Interactive Data Lab密切合作开发。

适用人群:Python开发

推荐指数:7.9k

项目名称:altair

=========================================================================

牛郎星

https://altair-viz.github.io

Vega-Altair是 Python 的声明式统计可视化库。借助 Vega-Altair,您可以花更多时间来理解数据及其含义。Vega-Altair 的 API 简单、友好且一致,并建立在强大的 Vega-Lite JSON 规范之上。这种优雅的简单性可以用最少的代码产生漂亮而有效的可视化效果。Vega-Altair 最初由Jake VanderplasBrian GrangerUW Interactive Data Lab密切合作开发。

Vega-Altair 文档

请参阅Vega-Altair 的文档站点以及 Vega-Altair 的教程笔记本

例子

下面是一个使用 Vega-Altair 在 JupyterLab 中使用原生 Vega-Lite 渲染器快速可视化和显示数据集的示例:

 
import altair as alt
# load a simple dataset as a pandas DataFrame
from vega_datasets import data
cars = data.cars()
 
alt.Chart(cars).mark_point().encode(
    x=`Horsepower`,
    y=`Miles_per_Gallon`,
    color=`Origin`,
)

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

import altair as alt
from vega_datasets import data
 
source = data.cars()
 
brush = alt.selection(type=`interval`)
 
points = alt.Chart(source).mark_point().encode(
    x=`Horsepower`,
    y=`Miles_per_Gallon`,
    color=alt.condition(brush, `Origin`, alt.value(`lightgray`))
).add_selection(
    brush
)
 
bars = alt.Chart(source).mark_bar().encode(
    y=`Origin`,
    color=`Origin`,
    x=`count(Origin)`
).transform_filter(
    brush
)
 
points & bars

让您的问题得到解答

如果您有文档中未解决的问题,可以通过多种方式提出:

我们会尽力解答您的问题

用于统计可视化的 Python API

Vega-Altair 提供了一个 Python API,用于以声明方式构建统计可视化。通过统计可视化,我们的意思是:

  • 数据源DataFrame由不同数据类型(定量、有序、名义和日期/时间)的列组成的。
  • DataFrame是一种整洁的格式 ,其中行对应于样本,列对应于观察到的变量。
  • 使用分组数据转换将数据映射到视觉属性(位置、颜色、大小、形状、面等)。

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

特征

  • 基于 traitlets的精心设计的声明式 Python API 。
  • 自动生成的内部 Python API,可确保可视化经过类型检查并完全符合Vega-Lite 规范。
  • 在 GitHub 和nbviewer上的实时 Jupyter Notebook、JupyterLab、nteract 中显示可视化 。
  • 将可视化导出为 PNG/SVG 图像、独立 HTML 页面和 在线 Vega-Lite 编辑器
  • 将可视化序列化为 JSON 文件。
  • 通过示例库中的数十个示例探索 Vega-Altair

安装

使用Vega-Altair进行可视化,需要安装两套工具

  1. 核心 Vega-Altair 包及其依赖项
  2. 您希望使用的前端渲染器(即Jupyter Notebook、 JupyterLabnteract

Vega-Altair 可以pipconda. 有关完整安装说明,请参阅 Installation — Altair 4.2.0 documentation

示例和教程笔记本

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

https://github.com/altair-viz/altair_notebooks

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

项目理念

Python 中存在许多优秀的绘图库,包括主要的:

每个库都能很好地完成一组特定的事情。

用户挑战

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

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

例如,如果您对两个数字列的可视化感兴趣,散点图几乎肯定是一个很好的起点。如果向其添加分类列,您可能希望使用颜色或构面对该列进行编码。如果有时难以推断可视化效果,一个简单的用户界面可以构建可视化效果而无需任何编码。 TableauInteractive Data Lab的 Polestar和 Voyager是此类 UI 的绝佳示例。

设计方法和解决方案

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

  1. 创建一个受约束的、简单的 Python API (Vega-Altair),它是纯声明式的
  2. 使用 API (Vega-Altair) 发出遵循 Vega-Lite 规范的 JSON 输出
  3. 使用现有的可视化库渲染该规范

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

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

开发安装

Vega-Altair 需要以下依赖项:

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

pip install -e .[dev]

如果您不想克隆存储库,可以使用以下方式安装:

pip install git+https://github.com/altair-viz/altair

测试

要运行测试套件,您必须安装py.test。要运行测试,请使用

py.test --pyargs altair

--pyargs(如果您从源代码检出运行测试,则可以省略该标志)。

如果您在学术工作中使用 Vega-Altair,请考虑引用Journal of Open Source Software: Altair: Interactive Statistical Visualizations for Python作为

 
@article{VanderPlas2018,
    doi = {10.21105/joss.01057},
    url = {https://doi.org/10.21105/joss.01057},
    year = {2018},
    publisher = {The Open Journal},
    volume = {3},
    number = {32},
    pages = {1057},
    author = {Jacob VanderPlas and Brian Granger and Jeffrey Heer and Dominik Moritz and Kanit Wongsuphasawat and Arvind Satyanarayan and Eitan Lees and Ilia Timofeev and Ben Welsh and Scott Sievert},
    title = {Altair: Interactive Statistical Visualizations for Python},
    journal = {Journal of Open Source Software}
}

请另外考虑引用Vega-Altair 基于的vega-lite项目: https ://dl.acm.org/doi/10.1109/TVCG.2016.2599030


@article{Satyanarayan2017,
    author={Satyanarayan, Arvind and Moritz, Dominik and Wongsuphasawat, Kanit and Heer, Jeffrey},
    title={Vega-Lite: A Grammar of Interactive Graphics},
    journal={IEEE transactions on visualization and computer graphics},
    year={2017},
    volume={23},
    number={1},
    pages={341-350},
    publisher={IEEE}
} 

Vega-Altair 从何而来?

织女星项目以天琴座中最亮的恒星命名;附近的牵牛星是天鹰座中最亮的恒星,它与天津四和织女星一起构成北半球的星群,即夏季大三角

开源地址

GitHub - altair-viz/altair: Declarative statistical visualization library for Python

开源是一种精神,致敬屏幕背后的你!

996技术站 - 活在未来 | KingSun966技术站,极客带你看世界!https://www.996station.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值