1.库导入
import pandas as pd
import numpy as np
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
2.基本框架
app = dash.Dash()
server = app.server
app.layout = html.Div( ... )
app.run_server(port=8051)
3.markdown文本写入
text = '''
# 1.测试
*这是加粗*
下面这是一条隔离线
---
- 这个是列表1
- 这个是列表2
## 2.这个是第二个标题
'''
app.layout = html.Div([children = dcc.Markdown(text)])
# 不加children也可以
markdown文本效果
4.下拉菜单
app.layout = html.Div(children=[
html.Label('这是一个下拉菜单'),
dcc.Dropdown(
options=[{'label':'第一个选项','value':'第一个选项的值'},
{'label':'第二个选项','value':'第二个选项的值'}],
value = '第二个选项的值' #这个是初始默认值
)])
下拉菜单
5.下拉菜单数据传输
app.layout = html.Div(children=[
html.Label('这是一个下拉菜单'),
dcc.Dropdown(
id = '输入为一个选项',
options=[{'label':'第一个选项','value':'第一个选项的值'},
{'label':'第二个选项','value':'第二个选项的值'}],
value = '第二个选项的值' #这个是初始默认值
),
dcc.Graph(id='输出为图')
])
@app.callback(Output('输出为图','figure'),
[Input('输入为一个选项','value')])
def cal_data(value): #value值是用来标记输入的变量
open_path = 'dash_test/'
df = pd.read_excel(open_path+'test.xlsx')
df['时间'] = df['时间'].apply(str)
df.set_index(['时间'],inplace=True)
df.index = pd.to_datetime(df.index)
if value == '第一个选项的值':
temp = 'a'
else:
temp = 'b'
return {'data':[{'x':df.index,'y':df[temp]}]}
df
第二个选项 第一个选项
用id标注位置,用callback调入参数
此处输入是dcc.Graph,所以经过函数输出的要符合graph的格式
@app.callback(
[output(输出名字1,类型1),
output(输出名字2,类型2)
...],
[input(输入名字1,类型1),
input(输入名字2,类型2)
...])
实现多条件输入和多条件输出
网友评论