如果你是一名数据分析员,或许你已经积累了大量数据处理和可视化的技能,但当你想要跨过图表和表格将你的分析作品呈现在一个交互式的网络页面上时,你可能会感到无从下手。
这时候,如果有一个工具能够让你用熟悉的 Python 语言,轻松地将数据分析转换为交互式的 Web 应用,那该多好啊!
Dash 便是这样一款工具,它可以帮助你将复杂的数据驱动型界面转化为现实。
谁是 Dash?
Dash 是由 Plotly 开发的开源框架,它背后的团队将图表绘图、前端反应式编程、以及后端服务搭建三位一体的工作做了优雅的封装。
它不像 Flask 那样需要你自己处理前后端的连接,也不像 Bokeh 那样让你在细节上绞尽脑汁。
Dash 提供了一种更加简洁和高级的抽象,使得它与数据分析工具链的集成变得异常流畅。
它特别适合于需要构建复杂、数据驱动型用户界面的数据可视化应用。
项目地址:https://dash.plotly.com/
安装 Dash
你只需要简单几步就能开始你的 Dash 之旅:
pip install dash
如果你使用的是 Python3.6 及以上版本,安装后你就可以立即开始构建你的第一个 Dash 应用了。
基本概念
Dash 应用基本上是由两部分组成的:布局 (Layout) 和 回调 (Callback)。布局负责定义应用的外观和感觉,而回调则赋予应用以交互性。
布局
# 布局示例 from dash import Dash, html, dcc app = Dash(__name__) app.layout = html.Div([ dcc.Graph(id='example-graph'), dcc.Dropdown(id='example-dropdown'), html.Button('Click me', id='example-button') ]) app.run()
在这个布局示例中,我们初始化了一个图表、一个下拉菜单和一个按钮,一般访问:http://127.0.0.1:8050/ 可以看到:
展示数据
from dash import Dash, html, dash_table import pandas as pd # Incorporate data df = pd.read_csv('gapminder2007.csv') # Initialize the app app = Dash(__name__) # App layout app.layout = html.Div([ html.Div(children='My First App with Data'), dash_table.DataTable(data=df.to_dict('records'), page_size=10) ]) # Run the app if __name__ == '__main__': app.run(debug=True)
上面代码可以将当前目录下,gapminder2007.csv
文件的数据展示出来,效果如下:
进阶特性
一个进阶特性是 Dash 的回调功能,它允许你创建交互性的应用。
回调函数可以在用户与应用的一部分交互时被触发,例如点击按钮或选择下拉菜单的选项。回调函数可以修改应用的任何部分,包括图表、文本、表格等。
下面的例子中,用户可以通过下拉菜单选择一个选项,然后应用会显示对应的图表。图表的数据是根据选项值生成的,每个选项都有一组固定的随机数据。
import dash from dash import dcc, html from dash.dependencies import Input, Output import plotly.graph_objects as go import pandas as pd import numpy as np app = dash.Dash(__name__) # 设定应用的布局 app.layout = html.Div([ dcc.Dropdown( id='dropdown', options=[ {'label': 'Option 1', 'value': '1'}, {'label': 'Option 2', 'value': '2'}, {'label': 'Option 3', 'value': '3'} ], value='1' ), dcc.Graph(id='graph') ]) # 设定回调函数 @app.callback( Output('graph', 'figure'), Input('dropdown', 'value') ) def update_graph(value): # 生成随机数据 np.random.seed(int(value)) # 用选项值作为随机数种子,以便每个选项都有固定的数据 x = np.linspace(0, 10, 100) y = np.sin(x) + np.random.randn(100) * 0.2 # 创建图表 fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers')) return fig if __name__ == '__main__': app.run_server(debug=True)
效果如下:
这里介绍的功能,不过只是 Dash 功能的冰山一角,更多的用法和功能,请参考项目文档[1]。
实践尝试
现在,你可以根据以上的基础知识,尝试运用 Dash 构建一个简单的用户界面,它可以展示一组数据,并且允许用户通过下拉菜单来选择不同的数据集进行查看。
以上就是“Dash —— 一个很有包容性的 Python 库”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。