Skip to content
Lib for Hosting Pygwalker

Top 5个Python库,用于将PyGWalker作为Web应用程序进行托管和分享

在当今快节奏的以数据为中心的世界中,分享您的洞察力与获得洞察力同样重要。作为数据科学领域的主要语言,Python提供了许多库,可以将您的数据分析转化为Web应用程序。如果您是“pygwalker”的粉丝,并希望进行交互式可视化,那么您很幸运!本博文将介绍将您的“pygwalker”可视化作为Web应用程序进行托管和分享的5个顶级库。

  1. Streamlit
  2. Gradio
  3. Dash
  4. Shiny-Python
  5. Flask

1. Streamlit

概述Streamlit (opens in a new tab) 是一个非常受欢迎的Python库,可以将数据脚本在几分钟内转化为可共享的Web应用程序,而不是几周的时间。您可以将Streamlit视为专为数据科学家量身定制的Flask,可以快速开发数据应用程序,而无需深入研究Web开发的复杂性。更重要的是,Streamlit提供了一个无缝的平台,可以将“pygwalker”转换为实时的Web应用程序,让您与广大受众共享,而不仅仅是呈现静态报告。用户可以根据自己的需求提出问题并继续探索。

主要特点

  • 简单性:使用几行代码将您的数据脚本转化为Web应用程序。
  • 交互式小部件:轻松添加滑块、按钮和文本输入来操作可视化效果。
  • 热重载:在不重新启动应用程序的情况下实时查看更改。

与PyGWalker集成: Streamlit和PyGWalker提供了强大的组合。最近的pygwalker API使其可以与Streamlit一起使用,实现了duckdb计算引擎,这是它们之间的独家功能。以下是逐步集成指南:

  1. 设置环境: 确保您拥有Python 3.6或更高版本。使用以下命令安装必要的依赖项:

    pip install pandas pygwalker streamlit
  2. 将PyGWalker嵌入到Streamlit中: 创建一个名为pygwalker_demo.py的新Python脚本。使用pygwalker.api.streamlit中的StreamlitRenderer进行无缝集成:

    from pygwalker.api.streamlit import StreamlitRenderer, init_streamlit_comm
    import pandas as pd
    import streamlit as st
     
    st.set_page_config(
        page_title="在Streamlit中使用Pygwalker",
        layout="wide"
    )
     
    init_streamlit_comm()
    st.title("在Streamlit中使用Pygwalker")
     
    @st.cache_resource
    def get_pyg_renderer() -> "StreamlitRenderer":
        df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")
        return StreamlitRenderer(df, spec="./gw_config.json", debug=False)
     
    renderer = get_pyg_renderer()
    renderer.render_explore()
  3. 在Streamlit中探索数据使用PyGWalker: 使用命令streamlit run pygwalker_demo.py执行Streamlit应用程序。此命令将启动您的Streamlit应用程序,您可以使用PyGWalker的直观拖放功能与之交互式可视化数据。

  4. 保存PyGWalker图表状态: 当您的pygwalker渲染器处于调试模式时,并且spec参数指向本地JSON文件路径时,可以通过在探索界面上点击保存按钮来保存图表配置。

进一步阅读:如何在Streamlit中使用PyGWalker

2. Gradio

概述Gradio (opens in a new tab) 可以帮助您围绕机器学习模型构建用户界面。但它不仅局限于此。它的自定义界面建立起来非常简单。

主要特点

  • 界面灵活性:通过下拉菜单、滑块、文本框等构建界面。
  • 快速部署:快速构建和部署机器学习原型。
  • 共享:获得应用程序的可共享链接,便于简单的协作。

与PyGWalker集成: Gradio的HTML界面组件可以托管pygwalker可视化。

import gradio as gr
import pygwalker as pyg
 
html_code = pyg.walk(..., return_html=True)
gr.Interface(fn=None, inputs=None, outputs=gr.HTML()).launch()

进一步阅读:如何在Gradio中使用PyGWalker

3. Dash

概述Dash (opens in a new tab) 是由Plotly开发的用于构建分析型Web应用程序的高效框架,无需使用JavaScript。

主要特点

  • 反应式:围绕Plotly图表构建反应式应用程序。
  • 可定制性:使用各种Dash组件创建自定义用户界面。
  • 集成:支持其他Plotly图表库的扩展。

与PyGWalker集成: 使用Dash的html.Div组件,可以轻松地将pygwalker可视化效果纳入其中。

import dash
import dash_dangerously_set_inner_html
 
import dash_html_components as html
import pygwalker as pyg
 
from datasets import load_dataset
# load dataset
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
 
app = dash.Dash()
 
html_code = pyg.walk(df, return_html=True)
 
app.layout = html.Div([
    dash_dangerously_set_inner_html.DangerouslySetInnerHTML(html_code),
])
 
if __name__ == '__main__':
    app.run_server(debug=True)
 

4. Shiny-Python

概述: 虽然R的Shiny库以其交互式应用程序而闻名,但Python的端口shiny为Python带来了类似的功能。

主要特点

  • 反应性:使用反应性绑定构建具有实时更新的应用程序。
  • UI组件:Shiny提供丰富的UI组件。

与PyGWalker集成: 使用ui.HTML组件,可以将pygwalker可视化嵌入到Shiny应用程序中。

from shiny import App, ui
import pygwalker as pyg
 
html_code = pyg.walk(..., return_html=True)
 
app_ui = ui.page_fluid(
    ui.HTML(html_code)
)
 
app = App(app_ui)

进一步阅读:如何在Shiny-Python中使用PyGWalker

5. Flask

概述Flask (opens in a new tab) 是一个轻量级的WSGI Web应用程序框架。虽然它不是专门用于数据应用程序,但其灵活性无与伦比。

主要特点

  • 微框架:Flask提供了运行Web应用程序的基础知识。
  • 扩展:通过扩展增强Flask的功能。

与PyGWalker集成: 您可以使用render_template函数在Flask应用程序中呈现pygwalker HTML。

from flask import Flask, render_template_string
import pygwalker as pyg
 
app = Flask(__name__)
 
@app.route('/')
def home():
    html_code = pyg.walk(..., return_html=True)
    return render_template_string(html_code)
 
if __name__ == '__main__':
    app.run(debug=True)

结论

您的数据故事值得更广泛的受众,而这些库使其实现成为可能!无论您是构建简单的原型还是完整的数据应用程序,这些与pygwalker结合使用的库提供了一个强大的组合,使您的数据可访问和交互。深入研究、实验,并让您的可视化效果在Web上闪耀!