Dash:一个数据仪表板超人的Python库!

文摘   2024-11-09 10:21   河南  

Dash:一个数据仪表板超人的Python库!

搞过数据分析的小伙伴都知道,光把数据分析出来还不够,咋让别人一眼就看懂你的分析结果才是关键。之前我总是用matplotlib画图,要啥自行车就是个静态图片,一点都不酷。后来发现了这个叫Dash 的神器,真是让我相见恨晚啊!


Dash就是Plotly家搞出来的一个Python库,让你不用写一行JavaScript代码就能搞出炫酷的网页仪表板。它把Flask、React.js和Plotly.js这些玩意儿打包在一起,你只要写Python代码就完事了。


来看个最基础的例子:   


import dash

from dash import html, dcc

import plotly.express as px

app = dash.Dash(__name__)

# 随便整点数据

df = px.data.iris()

# 画个好看的图

fig = px.scatter(df, x=“sepal_width”, y=“sepal_length”, color=“species”)

app.layout = html.Div([

html.H1(“我的第一个Dash应用”),

dcc.Graph(figure=fig)

])

if __name__ == '__main__':

app.run_server(debug=True)

运行这段代码,浏览器打开http://127.0.0.1:8050,哇塞,一个漂亮的可交互散点图就出来了!


Dash用HTML组件和Core组件来搭页面。HTML组件就是那些div、h1这些网页基本元素,Core组件则是一些现成的花里胡哨的控件。   


app.layout = html.Div([

html.Div([

html.H1(“销售数据分析”),

html.P(“点击下面的按钮筛选数据区间:”)

], style={'textAlign':'center'}),

dcc.Dropdown(

options=['全部', '上半年', '下半年'],

value='全部',

id='time-filter'

)

])

温馨提示:style里面的属性名得用驼峰命名,比如textAlign,不能写成text-align,不然就报错。


光有静态页面多没劲,Dash最牛的地方是可以加回调函数,让页面能实时响应用户操作:   


from dash.dependencies import Input, Output

@app.callback(

Output('graph-id', 'figure'),

Input('time-filter', 'value')

)

def update_graph(selected_time):

# 根据选择的时间筛选数据

if selected_time == '全部':

filtered_df = df

else:

filtered_df = df[df['period'] == selected_time]

return px.line(filtered_df, x='date', y='sales')

这样一来,用户选择不同的时间区间,图表就会自动更新,贼溜!


Dash还能搞定更复杂的交互。比如说,点击图表上的某个点,在旁边显示详细信息:   


@app.callback(

Output('click-data', 'children'),

Input('graph-id', 'clickData')

)

def display_click_data(clickData):

if clickData is None:

return “点击图表上的点查看详情”

point = clickData['points'][0]

return f“选中的数据点:x={point['x']}, y={point['y']}”

温馨提示:callback函数里面别写太复杂的计算,不然用户等半天都看不到响应,体验很糟心。


默认的白底黑字看着太素了,加点样式:   


app.layout = html.Div([

# 前面的组件...

], style={

'backgroundColor':'#f4f4f4',

'padding':'20px',

'borderRadius':'10px',

'boxShadow':'2px 2px 10px rgba(0,0,0,0.1)'

})

把这些知识点都用起来,就能整出一个特别像那么回事的数据分析仪表板。要是再配上定时更新的数据,那就更专业了!记得多看看Dash的官方文档,里面有特别多现成的例子,改改就能用。


写Python写久了就会发现,数据分析和可视化真是一门艺术,Dash就是帮咱们把这门艺术变得简单点的好帮手。

翔宇风
精彩纷呈,引人入胜。
 最新文章