Python 通过下拉和图形进行回调过滤
我是dash的新手,设置了一个带有下拉字段、图表和表格的仪表板。从数据库提交的所有数据。这很好,没有问题。但是,我希望通过下拉列表或在图中选择来过滤数据。图表应仅报告选定的数据 在已发布的代码中,由于我不知道如何处理过滤机制,因此没有包含回调 代码: 我想通过在图中选择或通过下拉列表选择来过滤数据。或者两者结合Python 通过下拉和图形进行回调过滤,python,plotly-dash,Python,Plotly Dash,我是dash的新手,设置了一个带有下拉字段、图表和表格的仪表板。从数据库提交的所有数据。这很好,没有问题。但是,我希望通过下拉列表或在图中选择来过滤数据。图表应仅报告选定的数据 在已发布的代码中,由于我不知道如何处理过滤机制,因此没有包含回调 代码: 我想通过在图中选择或通过下拉列表选择来过滤数据。或者两者结合 Thx提前根据您的数据帧,您需要一个类似以下内容的回调: @app.callback( 输出('example-graph','figure'), [输入('my-dropdown','
Thx提前根据您的数据帧,您需要一个类似以下内容的回调:
@app.callback(
输出('example-graph','figure'),
[输入('my-dropdown','value'))
定义我的回调函数(下拉值):
df=pd.read\u sql\u查询(v\u sql,local\u db)
df=df[df['year'].eq(下拉值)]
返回指令(
数据=[{'x':df[“日期”],'y':df[“金额”],'type':'bar','name':'?'}],
layout=dict('title':'thisatitle!')
)
完美!这就是我要找的。非常感谢。
from Dash_helper import *
import datetime
import dash_table
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import re
v_sql = "SELECT * FROM tbl_testdata;"
df = pd.read_sql_query(v_sql, local_db)
def generate_graph(dataframe):
return dcc.Graph(
id='example-graph',
figure={
'data': [
{'x': dataframe["date"], 'y': dataframe["amount"], 'type': 'bar', 'name': '???'},
],
'layout': {
'title': 'This is a title!'
}
}
)
def generate_table(dataframe, max_rows=12):
return html.Table(
#Header
[html.Tr([html.Th(col) for col in dataframe.columns])] +
#Body
[html.Tr([
html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
]) for i in range(min(len(dataframe), max_rows))]
)
app = dash.Dash(__name__)
app.layout = html.Div(children=[
html.H4(children='Headerline to be defined'),
dcc.Dropdown(
id='my-dropdown',
options=[
{'label': '2018', 'value': '2018'},
{'label': '2019', 'value': '2019'}
],
value='2019'
),
html.Div(id='output-container'),
generate_graph(df),
generate_table(df)
])
if __name__ == '__main__':
app.run_server(debug=True)