使用 PyGWalker + Streamlit 快速搭建交互式可视化报表

2023-10-17 13:45:21 +08:00
 fractalbanana

使用 PyGWalker 和 Streamlit 快速搭建数据可视化应用

在本文中,我们将深入介绍如何使用 PyGWalkerstreamlit 来搭建一个交互式的数据可视化分析应用。

什么是 PyGWalker ?

PyGWalker 是一个将你的数据转化为一个交互式可视化分析应用(类似 tableau 或 powerBI )的 python 库。 例如在 Juypter Notebook 中,数据科学家经常使用 PyGWalker 将数据转化成一个嵌入在 juypter 里的交互模块,他们可以使用拖拉拽或自然语言的方式进行可视化探索,而不再需要书写任何代码或切换到其他工具中去。

使用 PyGWalker ,您可以通过简单的拖放操作轻松生成散点图、折线图、条形图和直方图,无需编码技能。它是一个专门为希望快速轻松地探索和可视化数据的数据科学家和分析师设计的强大工具。PyGWalker 底层默认使用了 duckdb 作为计算引擎,这使得你基于 pygwalker 搭建的应用会具备非常客观的性能。

什么是 Streamlit ?

Streamlit 是另一个流行的 Python 库,用于构建和共享数据应用程序。它可以让您将数据脚本在几分钟而不是几周的时间内转化为 Web 应用程序。 你可以认为 streamlit 是一个面向数据科学家的 flask ,它可以让你快速的搭建一个数据应用,而不需要你去学习任何 web 开发的知识。streamlit 使得我们可以把 pygwalker 变成一个线上的 web 应用,从而分享给其他人。并且 pygwalker 可以让你搭出交互的可视化应用,而不仅仅是静态的数据报表。你的用户也可以提出问题,根据自己的需求再去探索。

那么如何使用 PyGWalker 和 Streamlit 构建一个具有强大可视化分析功能的可视化探索应用,并将其发布为数据应用程序呢?让我们来看看吧!

开始使用 PyGWalker 在 Streamlit 中

在开始在 Streamlit 中运行 PyGWalker 之前,让我们确保您的计算机已经设置了 Python 环境(版本 3.6 或更高)。完成后,请按照以下简单步骤操作:

安装依赖项

首先,打开命令提示符或终端,并运行以下命令以安装所需的依赖项:

pip install pandas
pip install pygwalker
pip install streamlit

将 PyGWalker 嵌入 Streamlit 应用程序

现在,我们已经安装了所有必要的依赖项,让我们创建一个包含 PyGWalker 的 Streamlit 应用程序。创建一个名为 pygwalker_demo.py 的新的 Python 脚本,并将以下代码复制到其中:

import pygwalker as pyg
import pandas as pd
import streamlit.components.v1 as components
import streamlit as st

# 调整 Streamlit 页面的宽度
st.set_page_config(
    page_title="在 Streamlit 中使用 PyGWalker",
    layout="wide"
)

# 添加标题
st.title("在 Streamlit 中使用 PyGWalker")

# 导入您的数据
df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")

# 使用 PyGWalker 生成 HTML
pyg_html = pyg.to_html(df)

# 将 HTML 嵌入到 Streamlit 应用程序中
components.html(pyg_html, height=1000, scrolling=True)

在 Streamlit 中探索数据使用 PyGWalker

要启动 Streamlit 应用程序并开始探索数据,请在命令提示符或终端中运行以下命令:

streamlit run pygwalker_demo.py

您应该会看到一些显示的信息:

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://xxx.xxx.xxx.xxx:8501

在您的网络浏览器中打开提供的 URL (http://localhost:8501),完成!您现在可以使用 PyGWalker 的直观拖放操作与您的数据进行交互和可视化。

保存 PyGWalker 图表状态

如果您想保存 PyGWalker 图表的状态,只需按照以下步骤进行操作:

  1. 单击图表上的导出按钮。

  1. 单击复制代码按钮。

  1. 将复制的代码粘贴到您的 Python 脚本中的所需位置。
import pygwalker as pyg
import pandas as pd
import streamlit.components.v1 as components
import streamlit as st

# 调整 Streamlit 页面的宽度
st.set_page_config(
    page_title="在 Streamlit 中使用 PyGWalker",
    layout="wide"
)

# 添加标题
st.title("在 Streamlit 中使用 PyGWalker")

# 导入您的数据
df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")

# 粘贴已复制的 PyGWalker 图表代码
vis_spec = """<PASTE_COPIED_CODE_HERE>"""

# 使用 PyGWalker 生成 HTML
pyg_html = pyg.to_html(df, spec=vis_spec)

# 将 HTML 嵌入到 Streamlit 应用程序中
components.html(pyg_html, height=1000, scrolling=True)
  1. 不要忘记重新加载网页,以查看保存的 PyGWalker 图表状态。

进阶功能

如果你想在 streamlit 中启用 pygwalker 底层的 duckdb 计算引擎,来支持更大规模的数据/更快的运算。可以参考pygwalker 的 API 文档

同时 pygwalker 也支持直接传入一个 snowflake 连接,从而支持处理更大规模的数据。

总结

你可以使用 pygwalker + streamlit 搭建 dashboard 甚至是简单的 CRM 。pygwalker 为你提供了数据相关的能力,streamlit 为你提供了 web 服务相关的功能。

也欢迎大家在 github 关注 pygwalker 的后续更新。

参考资料

1152 次点击
所在节点    分享创造
1 条回复
Songxwn
202 天前
看起来不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/982734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX