使用 PyGWalker + Streamlit 快速搭建交互式可视化报表 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
fractalbanana
V2EX    分享创造

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

  •  2
     
  •   fractalbanana 2023-10-17 13:45:21 +08:00 1966 次点击
    这是一个创建于 731 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 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 中探索数据使用 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. 单击图表上的导出按钮。

    在 Streamlit 中导出 PyGWalker 图表

    1. 单击复制代码按钮。

    在 Streamlit 中复制带有 PyGWalker 的代码

    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 的后续更新。

    参考资料

    1 条回复    2024-06-05 13:38:40 +08:00
    Songxwn
        1
    Songxwn  
       2024-06-05 13:38:40 +08:00
    看起来不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3356 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 10:30 PVG 18:30 LAX 03:30 JFK 06:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86