用Python开发web可视化应用

最近在做可视化相关的项目,了解到了Dash这个Python可视化库,实操之后觉得还是蛮好的,操作简单且很实用!

Dash 简介

Dash是一个用于构建分析web应用程序的Python框架,是纯用Python编写的。可以用它制作高度可定制的用户界面和使用最少的编码来构建交互式、数据驱动的应用程序。其建立在 Plotly.js、React 和 Flask 之上,将现代 UI 元素如下拉框、滑块和图形直接与 Python 代码绑定,以帮助开发人员快速构建强大的应用程序,同时Dash也保持了Python的全部灵活性。

(在这里也提及一下Plotly。相信有过用Python做数据分析相关开发经验的开发者应该都不陌生。Plotly基于D3.js之上,提供创建各种图表和图形的功能,包括折线图、散点图、条形图、直方图、方框图、热图等,可以创建交互式可视化图表。自发布以来,因其高交互式和广泛的自定义选项深受喜爱。这里我就不重点介绍了,大家可以自行学习,官网:https://plotly.com/

再说回Dash。Dash的应用程序还可以部署到 VM 或 Kubernetes 集群,然后通过 URL 共享它们,而 Dash 本质上也是跨平台和移动就绪的。

Dash 应用程序为用 Python 编写的模型提供了点击式界面,极大地扩展了传统“仪表板”中可能的概念。借助 Dash 应用程序,数据科学家和工程师将复杂的 Python 分析交到业务决策者和运营商手中。

除此之外,Dash也开发了企业版本,提供包括低代码应用开发服务。在业务环境中构建 Dash 应用程序时,需要 Dash Enterprise 来部署和扩展它们,并将它们与身份验证和 VPC 服务等 IT 基础设施集成。

快速开始

接下来介绍一下如何创建我们自己的Dash应用!

首先,准备一下开发环境。可以用pip安装Dash库:

pip install dash

这里说明一下,一般来说构建一个数据分析应用都是要依赖于其他库的,例如Pandas和Numpy,因此,如果有没用过这两个库的小伙伴,也安装一下,以便于日后的数据分析!

pip install pandas
pip install numpy

创建带有下拉菜单、图形和滑块的简单仪表板:

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px

app = dash.Dash()
app.layout = html.Div([    
                html.H1("我的第一个Dash应用"),    
                dcc.Dropdown(        
                    id="dropdown",        
                    options=[{"label": i, "value": i} for i in ["A", "B", "C"]],        
                    value="A"    
                ),    
                dcc.Graph(id="graph"),    
                dcc.Slider(        
                    id="slider",        
                    min=0,        
                    max=10,        
                    step=1,        
                    value=5    
            )])

# 添加回调函数
@app.callback(    
            dash.dependencies.Output("graph", "figure"),    
            [dash.dependencies.Input("slider", "value"),     
            dash.dependencies.Input("dropdown", "value")])

def update_graph(slider_value, dropdown_value):    
    df = px.data.tips()    
    fig = px.scatter(df, x="total_bill", y="tip", color=dropdown_value)    
    fig.update_layout(title=f"Slider value: {slider_value}")
    return fig

if __name__ == "__main__":    
    app.run_server(debug=True)

使用按钮创建简单的折线图以更新数据:

import dash
import dash_core_components as dcc
import dash_html_components as html
import random

app = dash.Dash()
app.layout = html.Div([    
                html.H1("My Second Dash App"),    
                dcc.Graph(id="line-chart"),    
                html.Button(id="update-data", n_clicks=0, children="Update Data")
                ])

@app.callback(    
        dash.dependencies.Output("line-chart", "figure"),    
        [dash.dependencies.Input("update-data", "n_clicks")])

def update_data(n_clicks):    
    x = list(range(10))    
    y = [random.randint(0, 100) for i in x]    
    fig = {"data": [{"x": x, "y": y, "type": "line", "name": "Line Chart"}],
            "layout": {"title": f"Button clicks: {n_clicks}"}    
          }
    return fig

if __name__ == "__main__":    
    app.run_server(debug=True)

与Pandas表格数据结合的例子:

from dash import Dash, html, dcc
import plotly.express as px
import pandas as pd

app = Dash(__name__)

# 随便模拟一个pandas的DataFrame
df = pd.DataFrame({"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],"Amount": [4, 1, 2, 2, 4, 5],"City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]})

fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
app.layout = html.Div(children=[    
                html.H1(children='你好,Dash!'),    
                html.Div(children='''        
                Dash: A web application framework for your data.    
                '''),    
                dcc.Graph(        
                id='exp',figure=fig)])

if __name__ == '__main__':    
    app.run_server(debug=True)

(可以在终端运行`python app.py`命令运行程序,并打开浏览器输入:http://127.0.0.1:8050/ 查看程序运行的结果!)

运行结果:

结语

这篇文章只是简单的介绍了一下dash这个库,但其实还有很多其他的功能,我后期会慢慢介绍,觉得有用就给个关注吧!

也欢迎关注我的公众号,公众号内容与CSDN同步,但关注公众号之后可以在后台领取福利哦~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
声明:本人自己研发 现在免费使用 有需要帮助请登陆网站:www.moduleframework.com.cn Visual Web Developer(可视化Web开发工具) 可视化Web开发工具由Visual Web Developer开发环境, WebFramework运行环境 2大部分组成, Visual Web Developer是基于Windows的一个开发工具,提供了一系列控件, 让您的模块实现只需要通过拖沓控件,指定控件的属性,事件,完全让B/S开发工作 和VB,DELPHI这样的开发工具一样,简单方便,开发出来的界面完全和C/S操作一样,如窗口化的操作, 桌面程序的界面风格等。 WebFramework是基于J2EE技术的一个运行环境,主要负责解释Visual Web Developer开发出来的程序并运行。 开发工具的运行环境(WebFramework): Visual Web Developer开发出来的程序,最终要经过WebFramework解释运行。 WebFramework内置Log4j,Hibernate,DWR,cache等开源技术。 并且实现常用部分功能,如用户登录注册,用户角色与权限,系统模块管理,资源管理,文件上传与下载等。 可以跨操作系统,跨数据库(您不再需要关心数据库的厂商是采用什么了) 支持多种浏览器显示运行结果。如IE,FireFox,Opera,Maxthon,Netcape等。 开发流程: 开发工具主界面: 主界面上半部分由菜单,基本工具栏,控件工具栏(有文本框,Label,下拉框,复选框,按钮,树等控件) 中间是窗口设计,右边由控件列表和属性,事件组成(可编写代码,代码中可以直接调用Java中编写的类)。 图片:http://www.moduleframework.com.cn/images/vwd-main-full.jpg http://www.moduleframework.com.cn/images/webfk-main.jpg 点击放大 运行效果图: Visual Web Developer设计出来的程序,通过WebFramework解释运行后的效果图。 效果图中由2个窗口组成,当点击登录窗口中的注册时,弹出注册对话框,并且弹出是采用模式对话框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JC_light2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值