Top 5个Python库,用于将PyGWalker作为Web应用程序进行托管和分享
在当今快节奏的以数据为中心的世界中,分享您的洞察力与获得洞察力同样重要。作为数据科学领域的主要语言,Python提供了许多库,可以将您的数据分析转化为Web应用程序。如果您是“pygwalker”的粉丝,并希望进行交互式可视化,那么您很幸运!本博文将介绍将您的“pygwalker”可视化作为Web应用程序进行托管和分享的5个顶级库。
- Streamlit
- Gradio
- Dash
- Shiny-Python
- 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
计算引擎,这是它们之间的独家功能。以下是逐步集成指南:
-
设置环境: 确保您拥有Python 3.6或更高版本。使用以下命令安装必要的依赖项:
pip install pandas pygwalker streamlit
-
将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()
-
在Streamlit中探索数据使用PyGWalker: 使用命令
streamlit run pygwalker_demo.py
执行Streamlit应用程序。此命令将启动您的Streamlit应用程序,您可以使用PyGWalker的直观拖放功能与之交互式可视化数据。 -
保存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上闪耀!