【Python】交互式界面工具:shiny、dash、streamlit等怎么选?

仪表盘 (Dashboard),可简单的理解为一个交互式网页,在其中,用户可以不懂代码,拖拖拽拽即可与数据交互、做数据探索建模分析、展示自己关注的结果


本文汇总了Python/R/Julia中5款仪表盘 (Dashboard)工具,简单比较其使用场景、学习难度、成熟度、支持语言等。

74f165421812e5b88e0e3fd678a2c768.png
The GitHub star history of Viola, Dash, Shiny, Streamlit, and Panel.

Dash

Dash和前面介绍的plotly出自同一家公司,可基于Python, R, Julia和 F#语言高效开发仪表盘,为机器学习和数据科学结果提供良好展示;
Dash专注于企业级仪表板的创建部分功能开源(人名币玩家可尝试全功能企业版本),高级API plotly-express的发布使Dash更容易上手;
一个简单的Python Dash例子,使用熟悉的iris数据集,代码存入dash.t.py中,内容如下,

import dash
from dash import dcc
from dash import html
from dash.dependencies import Input, Output
import plotly.express as px

df = px.data.iris()
all_dims = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Dropdown(id="dropdown",
                 options=[{
                     "label": x,
                     "value": x
                 } for x in all_dims],
                 value=all_dims[:2],
                 multi=True),
    dcc.Graph(id="splom"),
])


@app.callback(Output("splom", "figure"), [Input("dropdown", "value")])
def update_bar_chart(dims):
    fig = px.scatter_matrix(df, dimensions=dims, color="species")#plotly.express可视化
    return fig


app.run_server(debug=True)

python dash.t.py
Dash is running on http://xxx/
浏览器中打开 http://xxx/b329637a693512fde4cd6b6db30d121c.gif进一步学习:https://github.com/plotly/dash


Streamlit

相较于Dash,Streamlit只能基于Python开发仪表盘,但是完全开源
比Dash更容易上手,几分钟即可创建一个仪表盘,可节省更多时间做数据分析。
一个简单Python Streamlit例子,求任意数平方,代码存入stre.t.py中,内容如下,

import streamlit as st

x = st.slider('Select a value')
st.write(x, 'squared is', x * x)

streamlit run stre.t.py
You can now view your Streamlit app in your browser.Local URL: http://xx
打开http://xx71ff40032c53ec2c91159037f2f24f2b.gif更复杂的例子,利用自动驾驶数据集,使用YOLO做对象检测,

0e845e5360b4870f672ee51d4726cdaa.png

进一步学习:https://github.com/streamlit/streamlit


Shiny

Shiny是R中的工具,能非常友好的融合R中的其它工具,譬如ggplot2等,推荐R用户使用
Shiny功能不及Dash强大,特别是Dash的企业收费版本
一个例子,和ggplot2一样,创建的页面非常优雅,

76e4c239e07837b2d6e4ab893dab8b34.png

进一步学习:https://github.com/rstudio/shiny

https://shiny.rstudio.com/tutorial/


Voila

Jupyter Notebook重度玩家首选,Voila快速将Jupyter Notebook变成仪表盘;
Voila非常轻量级,当需要将Jupyter Notebook结果展示给非技术团队时推荐。

Python Voila一个简单例子

2b613809967f8b3d9ed7918360685924.gif

进一步学习:https://github.com/voila-dashboards/voila


Panel

需要快速将Jupyter Notebook变成仪表盘,但是Voila又不能充分满足这个需求时,推荐Panel
进一步学习:https://github.com/holoviz/panelb464136167b76e9e700863cc5831b74e.png


比较结果

比较结果汇总,参考6个指标

  • 成熟度 (Maturity)

  • 知名度 (Popularity)

  • 上手难度 (Simplicity)

  • 应用灵活度 (Adaptability)

  • 聚焦场景 (Focus)

  • 支持语言 (Language support)

结果划分分A、B、C三个等级:1bf1dfd937a09a18ad7ec11bd69f3652.png

 
 

-END-
 
 
 
 

b37f9374bb65f63a4b3002302721df63.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961)

fb9c5d756dd8db4afec355193bb9b459.png

ed07657f06d0a7708d902636802074f5.gif

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值