如何使用 PyGWalker 和 Gradio
pygwalker 是一个将数据转化为交互式可视化应用程序(类似 Tableau 或 PowerBI)的 Python 库。例如,在 Jupyter Notebook 中,数据科学家经常使用 pygwalker 将数据转化为嵌入在 Jupyter 中的交互式模块,在其中他们可以使用拖放或自然语言来探索可视化结果,无需编写任何代码或切换到其他工具。
然而,如何与他人共享交互式可视化结果?如何让用户自己探索数据?在本教程中,我们将向您展示如何使用 pygwalker 和 Gradio 构建一个数据探索和共享应用程序。
什么是 Gradio?
Gradio (opens in a new tab) 是一个 Python 库,可以快速创建可定制的 UI 组件,围绕您的机器学习模型、深度学习模型和其他功能。它可以让您只用几行代码构建一个简单的、可共享的模型 UI。Gradio 是一个快速创建 Web 应用程序与他人共享模型的工具。
如何使用 PyGWalker 和 Gradio
在我们开始运行 PyGWalker 与 Gradio 之前,确保您的计算机已经设置了 Python 环境(3.6 版本或更高)。一旦完成,按照以下简单步骤操作:
太棒了!您已经取得了相当大的进展。我将在您提供的信息的基础上帮助您完成教程文章。
使用 PyGWalker 与 Gradio 的逐步指南
1. 安装
在我们开始之前,您需要安装 pygwalker
和 gradio
两个库。如果您还没有这样做,使用 pip 是非常简单的:
pip install pygwalker gradio
2. 导入必要的库
根据您的代码示例,导入所有必要的模块,如下所示:
import gradio as gr
import pygwalker as pyg
from datasets import load_dataset
3. 加载您的数据集
对于本教程,我们使用了 Gradio 的 NYC-Airbnb 数据集,但您可以随意将其替换为您选择的任何数据集:
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
4. 使用 PyGWalker 构建 Gradio 接口
使用 Gradio 的 Blocks 功能来封装用户界面组件,如您提供的代码示例所示:
with gr.Blocks() as demo:
gr.Label("在 PyGWalker 和 Gradio 中可视化探索 NYC-Airbnb 数据")
gr.Markdown("这是一个使用 pygwalker 和 gradio 库构建的数据应用程序。您可以使用拖放操作来探索数据。现在开始您的分析吧!")
gr.HTML(pyg.walk(dataset=df, spec="./viz-config.json", debug=False, return_html=True))
以下是代码的详细解释:
gr.Label()
: 为您的 Gradio 接口提供标签或标题。gr.Markdown()
: 允许您包含以 markdown 格式呈现的文本,以提供详细描述或信息。gr.HTML()
: 这就是pygwalker
的用武之地。pyg.walk()
函数将数据集转化为交互式可视化,然后通过此 HTML 组件在 Gradio 接口中呈现。
5. 启动应用程序
最后,只需一条简单的命令,您就可以启动 Web 应用程序:
demo.launch()
通过执行脚本,您的交互式数据可视化应该在浏览器中可用。您可以使用拖放功能或自然语言来探索数据集(需要 kanaries API 密钥以启用)。
以更本地的方式将 pygwalker 与 gradio 整合
pygwalker 包含一些高级功能,比如内核计算,它可以使用 duckDB 引擎加速数据探索。自 pygwalker version>=0.3.10
以来,对 gradio 有了原生支持。
from pygwalker.api.gradio import PYGWALKER_ROUTE, get_html_on_gradio
with gr.Blocks() as demo:
# load dataset
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
pyg_app = get_html_on_gradio(df, spec="./viz-config.json")
gr.HTML(pyg_app)
app = demo.launch(app_kwargs={
"routes": [PYGWALKER_ROUTE]
})
结论
通过结合 pygwalker
和 gradio
的力量,您可以快速构建和共享交互式数据可视化。它不仅简化了数据探索,还使非技术用户可以与您的发现交互,使数据洞察力民主化。不妨试试,并与世界分享您的见解!
参考资料
[1] Gradio (opens in a new tab) [2] PyGWalker 文档 (opens in a new tab) [3] pygwalker + gradio playground (opens in a new tab) [4] pygwalker GitHub (opens in a new tab)