开云体育我们来创建一个浅易的 Dash 诓骗-开云「中国」kaiyun网页版登录入口
发布日期:2026-01-15 11:32    点击次数:142

开云体育我们来创建一个浅易的 Dash 诓骗-开云「中国」kaiyun网页版登录入口

嘿,小伙伴们,今天我们来聊聊一个能让你数据可视化作品遽然遍及上的神器——Dash!Dash 是由 Plotly 团队开拓的一个 Python 库,它能让你间隙创建交互式、Web-based 的数据可视化诓骗。遐想一下,你的数据不再是静态的图表,而是不错点击、拖动、筛选的炫酷界面,是不是合计很有范儿?

Dash 诓骗基础

Dash 的中枢想想是将你的 Python 代码诊疗成 Web 诓骗,用户不错通过浏览器拜访并与之交互。它提供了丰富的 UI 组件,比如按钮、下拉菜单、滑块等,你不错将这些组件与你的数据可视化皆集起来,创造出令东说念主惊艳的交互成果。

装置 Dash

率先,我们得把 Dash 装置到我们的 Python 环境中。怒放你的大叫行器具,输入以下大叫:

pip install dash

第一个 Dash 诓骗

接下来,我们来创建一个浅易的 Dash 诓骗。这个诓骗会露馅一个按钮和一个图表,当你点击按钮时,图表会更新。

import dashimport dash_core_components as dccimport dash_html_components as htmlfrom dash.dependencies import Input, Outputimport plotly.graph_objs as go# 创建 Dash 诓骗实例app = dash.Dash()# 建造诓骗布局app.layout = html.Div([ html.H1('Hello, Dash!'), dcc.Button('Click me', id='my-button'), dcc.Graph(id='my-graph', figure={'data': [ go.Scatter( x=[1, 2, 3], y=[4, 1, 6], mode='markers' ) ],'layout': go.Layout( title='Scatter Plot' ) } )])# 界说回调函数@app.callback( Output('my-graph', 'figure'), [Input('my-button', 'n_clicks')])defupdate_graph(n_clicks):if n_clicks isNone: n_clicks = return {'data': [ go.Scatter( x=[1, 2, 3, n_clicks], y=[4, 1, 6, n_clicks * 2], mode='markers' ) ],'layout': go.Layout( title='Updated Scatter Plot' ) }# 运转诓骗if __name__ == '__main__': app.run_server(debug=True)

运转这段代码后,你的浏览器会自动怒放一个窗口,露馅我们的 Dash 诓骗。当你点击按钮时,图表会更新,增多一个新的点。

温馨请示:别忘了在大叫行中保持运转这个剧本,不然你的 Dash 诓骗会关闭哦!

Dash 组件详解

Dash 提供了多半的 UI 组件,你不错说明需要承袭符合的组件来构建你的诓骗。

文本和按钮

我们刚才仍是用到了 html.H1 和 dcc.Button 这两个组件。html.H1 用于露馅标题,而 dcc.Button 则用于创建一个按钮。

图表

dcc.Graph 是 Dash 中最紧迫的组件之一,它用于露馅 Plotly 图表。你不错通过传递一个 figure 对象来指定图表的面貌和数据。

下拉菜单和滑块

dcc.Dropdown 和 dcc.Slider 是两个颠倒实用的组件,它们允许用户通过承袭或拖动来转换诓骗的景色。

# 下拉菜单示例dcc.Dropdown( options=[{'label': i, 'value': i} for i in ['Option 1', 'Option 2', 'Option 3']], value='Option 1',id='my-dropdown')# 滑块示例dcc.Slider(min=,max=100, step=1, value=50,id='my-slider')

布局

Dash 使用了一种肖似于 HTML 的布局时势,你不错通过嵌套 html.Div、html.Row 和 html.Col 等组件来创建复杂的布局。

app.layout = html.Div([ html.Row([ html.Col([# 左侧本色 ], className='three columns'), html.Col([# 右侧本色 ], className='nine columns') ])])

温馨请示:铭记给 html.Col 组件加上 className 属性来指定列的宽度哦!

实战:构建一个天气预告诓骗

目下,我们来实战一下,构建一个浅易的天气预告诓骗。这个诓骗会露馅一个城市名、一个滑块来承袭日历,以及一个图表来露馅该城市在改日一周的温度变化。

数据准备

率先,我们需要一些天气数据。为了简化,我们假定仍是有一个包含改日一周天气数据的字典。

weather_data = {'Beijing': [5, 10, 15, 20, 25, 30, 35],'Shanghai': [10, 12, 14, 16, 18, 20, 22],# 不错添加更多城市的数据}

诓骗布局

接下来,我们来建造诓骗布局。我们需要一个下拉菜单来承袭城市,一个滑块来承袭日历,以及一个图表来露馅温度。

app.layout = html.Div([ html.H1('Weather Forecast'), dcc.Dropdown( options=[{'label': city, 'value': city} for city in weather_data.keys()], value='Beijing',id='city-dropdown' ), dcc.Slider(min=,max=6, step=1, value=,id='date-slider', marks={i: f'Day {i+1}'for i inrange(7)} ), dcc.Graph(id='temperature-graph', figure={'data': [ go.Scatter( x=[f'Day {i+1}'for i inrange(7)], y=weather_data['Beijing'], mode='lines' ) ],'layout': go.Layout( title='Temperature Forecast' ) } )])

回调函数

终末,我们来界说一个回调函数,当城市或日历转换时,更新图表。

@app.callback( Output('temperature-graph', 'figure'), [Input('city-dropdown', 'value'), Input('date-slider', 'value')])defupdate_graph(city, date):return {'data': [ go.Scatter( x=[f'Day {i+1}'for i inrange(7)], y=weather_data[city][:date+1], # 只露馅到承袭的日历 mode='lines' ) ],'layout': go.Layout( title=f'Temperature Forecast for {city}' ) }

运转这个诓骗后,你就不错通过下拉菜单承袭城市,通过滑块承袭日历,并看到相应的温度变化图表了。

追忆

今天我们聊了聊 Dash 这个炫酷的 Python 数据可视化库。Dash 允许你间隙创建交互式、Web-based 的数据可视化诓骗,它提供了丰富的 UI 组件和活泼的布局时势。通过实战,我们构建了一个浅易的天气预告诓骗,展示了 Dash 的遒劲功能。

淌若你对数据可视化感好奇,不妨试试 Dash开云体育,战胜你会心爱上它的!铭记多动手扩充哦,这么才调更好地掌持这个器具。