美文网首页
dash(1)--数据交互传输

dash(1)--数据交互传输

作者: 黄yy家的jby | 来源:发表于2019-12-18 18:19 被阅读0次

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)
...])

实现多条件输入和多条件输出

相关文章

网友评论

      本文标题:dash(1)--数据交互传输

      本文链接:https://www.haomeiwen.com/subject/fmwunctx.html