Skip to content
PYGWALKER
实例教程
如何使用 PyGWalker 和 Gradio

huggingface 的演示 (opens in a new tab)

如何使用 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. 安装

在我们开始之前,您需要安装 pygwalkergradio 两个库。如果您还没有这样做,使用 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 密钥以启用)。

huggingface 的演示 (opens in a new tab)

以更本地的方式将 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]
})

结论

通过结合 pygwalkergradio 的力量,您可以快速构建和共享交互式数据可视化。它不仅简化了数据探索,还使非技术用户可以与您的发现交互,使数据洞察力民主化。不妨试试,并与世界分享您的见解!

参考资料

[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)