pdvega
: 基于Pandas的Vega-Lite交互式绘图库
pdvega
是一个巧妙的开源库,它允许您直接从Pandas数据框创建交互式的Vega-Lite图表,其API与Pandas内置的可视化工具几乎相同,并且在Jupyter Notebook中运行得尤为流畅。
默认情况下,Pandas提供了基于matplotlib的一些基本绘图功能。比如,您可以这样创建散点图:
import numpy as np
import pandas as pd
df = pd.DataFrame({'x': np.random.randn(100), 'y': np.random.randn(100)})
df.plot.scatter(x='x', y='y')
pdvega
的目标是让您可以轻松地将上述代码中的dataframe.plot
替换为dataframe.vgplot
,从而得到一个更美观且交互性强的Vega-Lite图表,便于分享或自定义:
import pdvega # 导入后会给Pandas添加vgplot属性
df.vgplot.scatter(x='x', y='y')
上面的图像仅是交互式输出的静态截图;请参阅文档以获取完整的实时使用示例。
安装与使用
要开始使用pdvega
,可以通过pip进行安装:
$ pip install jupyter pdvega
$ jupyter nbextension install --sys-prefix --py vega3
第一行命令用于安装pdvega
及其依赖项,第二行命令则用于在Jupyter Notebook中安装必要的扩展,使图形能够正常显示。有关更多安装和依赖性信息,请参考安装指南。
为什么选择Vega-Lite?
处理数据时,确保结果可重复性是一项重大挑战。通过将数据嵌入到PNG或PDF的渲染图像中,会导致数据难以甚至无法提取。而Vega和Vega-Lite颠覆了这一模式:它们不编码像素值来创建图形,而是通过JSON规范以声明式方式描述数据值与视觉编码之间的关系。
这意味着pdvega
产生的Vega-Lite图形是便携式的。您可以发送JSON规范给别人,他们可以选择在线交互式渲染、转换为静态PNG或EPS,甚至增强和扩展图形以深入理解数据。
pdvega
的目标不是设计新的可视化API,而是利用已有的DataFrame.plot
可视化API,并将输出可视化转化为Vega/Vega-Lite,而非matplotlib。
在这一点上,pdvega
的精神与已停运的mpld3项目相似,但范围更小,(希望)更加易于管理。
关于Altair
Altair是一个旨在为Vega-Lite和Vega生成可视化图形的项目,其中Pandas数据帧作为数据源。
相比之下,pdvega
侧重于使用现有的DataFrame.plot
API并以Vega/Vega-Lite而不是matplotlib来呈现结果。
总的来说,pdvega
提供了一种简洁、直观的方式来利用Pandas的强大功能,结合Vega-Lite的可视化潜力,为您的数据分析工作带来全新的体验和可能性。立即尝试,释放你的数据魅力吧!