使用Ibis表达式评估Vega转换。
项目描述
ibis-vega-transform


一个用于使用Ibis惰性执行Vega转换的JupyterLab扩展。
使用Ibis表达式进行Python评估的Vega转换。
获取灵感,请参阅 https://github.com/jakevdp/altair-transform
此扩展由名为 ibis-vega-transform
的 Python 包(用于服务器扩展)和名为 ibis-vega-transform
的 NPM 包(用于前端扩展)组成。
要求
- JupyterLab >= 3.0
入门指南
pip install ibis-vega-transform
然后在笔记本中导入 Python 包,并将 ibis 表达式传递给 Altair 图表
import altair as alt
import ibis_vega_transform
import ibis
import pandas as pd
source = pd.DataFrame({
'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})
# or ibis.pandas if ibis version < 1.4
connection = ibis.backends.pandas.connect({'source': source })
table = connection.table('source')
alt.Chart(table).mark_bar().encode(
x='a',
y='b'
)
查看 ./examples/
目录中的笔记本,以了解使用交互式图表和 OmniSci 后端的一些选项。
用法
导入 ibis_vega_transform
将 altair
渲染器和数据转换器设置为 "ibis"
。它还会对 Ibis 图表构造函数进行 monkeypatch,以处理 ibis
表达式。
现在,每当您将 ibis
表达式传递给图表构造函数时,它将使用自定义的 ibis 渲染器,将所有数据聚合推送到 ibis,而不是在浏览器中。
您还可以设置一个调试标志,以便它拉取 ibis 表达式的第一 N 行并使用默认渲染器。这有助于查看默认管道如何渲染您的图表。如果您遇到错误,我建议首先设置此标志,以查看错误是在 Altair 端还是 ibis-vega-transform
端。如果回退图表渲染正确,则表示错误在此代码库中。如果它错误,则错误在您的代码、Altair 或 Vega 中。
# enable fallback mode
ibis_vega_transform.set_fallback(True)
# disable fallback mode (the default)
ibis_vega_transform.set_fallback(False)
跟踪
如果您想查看交互的跟踪以进行调试和性能分析,请安装 jaeger-all-in-one
二进制文件和 jupyterlab-server-proxy
实验室扩展,以在启动器中看到 Jaeger 图标。
conda install jaeger -c conda-forge
jupyter labextension install jupyterlab-server-proxy-saulshanabrook
Jaeger 服务器实际上直到接收到 HTTP 请求才会启动,因此,在运行您的可视化之前,请点击 JupyterLab 启动器中的“Jaeger”图标或转到 /jaeger
以打开 UI。然后运行您的可视化,您应该会看到跟踪出现在 Jaeger 中。
您可能还需要在您的操作系统上增加最大 UDP 数据包大小,以 适应大日志
Mac
# Edit now
sudo sysctl net.inet.udp.maxdgram=200000
# Edit on restart
echo net.inet.udp.maxdgram=200000 | sudo tee -a /etc/sysctl.conf
故障排除
如果您看到了前端扩展,但它不起作用,请检查服务器扩展是否已启用
jupyter server extension list
如果服务器扩展已安装和启用,但您没有看到前端扩展,请检查前端扩展是否已安装
jupyter labextension list
贡献
开发安装
注意:您将需要 NodeJS 来构建扩展包。
jlpm
命令是 JupyterLab 的固定版本 yarn,它是与 JupyterLab 一起安装的。您可以使用 yarn
或 npm
替代以下 jlpm
。
# Clone the repo to your local environment
git clone git@github.com:Quansight/ibis-vega-transform.git
# Change directory to the ibis-vega-transform directory and
# Create a conda environment
cd ibis-vega-transform
conda env create -f binder/environment.yml
conda activate ibis-vega-transform
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build
您可以在不同的终端中同时监视源目录并运行 JupyterLab,以监视扩展源中的更改并自动重新构建扩展。
# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab
在监视命令运行时,每次保存的更改都将立即在本地构建并可供正在运行的 JupyterLab 使用。刷新 JupyterLab 以在浏览器中加载更改(您可能需要等待几秒钟以重建扩展)。
默认情况下,jlpm run build
命令生成此扩展的源映射,以便更容易使用浏览器开发工具进行调试。要为 JupyterLab 核心扩展生成源映射,可以运行以下命令
jupyter lab build --minimize=False
使用 Husky(需要 Git > 2.13)安装了预提交钩子来格式化文件。
使用以下命令在任何时间运行格式化工具
black ibis_vega_transform
jlpm run prettier
跟踪
我们使用 jupyter-jaeger
跟踪每个交互以进行基准测试。
卸载
pip uninstall ibis-vega-transform
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。