반응형
from dash import Dash, html, dash_table, dcc, callback, Output, Input
import pandas as pd
import plotly.express as px
# # Incorporate data
# df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder2007.csv')
# # Initialize the app
# app = Dash(__name__)
# # App layout
# app.layout = html.Div([
# html.Div(children='My First App with Data, Graph, and Controls'),
# html.Hr(),
# dcc.RadioItems(options=['pop', 'lifeExp', 'gdpPercap'], value='lifeExp', id='my-final-radio-item-example'),
# dash_table.DataTable(data=df.to_dict('records'), page_size=6),
# dcc.Graph(figure={}, id='my-final-graph-example')
# ])
# # Add controls to build the interaction
# # - 컴포넌트의 프로퍼티가 변경될 때마다 자동으로 호출되는 함수
# @callback(
# Output(component_id='my-final-graph-example', component_property='figure'),
# Input(component_id='my-final-radio-item-example', component_property='value')
# )
# def update_graph(col_chosen):
# fig = px.histogram(df, x='continent', y=col_chosen, histfunc='avg')
# return fig
# # Run the app
# if __name__ == '__main__':
# app.run_server(debug=True)
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = Dash(__name__, external_stylesheets=external_stylesheets)
all_options = {
'America': ['New York City', 'San Francisco', 'Cincinnati'],
'Canada': [u'Montréal', 'Toronto', 'Ottawa']
}
app.layout = html.Div([
dcc.RadioItems(
id='countries-radio',
options=[{'label': k, 'value': k} for k in all_options.keys()],
value='America'
),
html.Hr(),
dcc.RadioItems(id='cities-radio'),
html.Hr(),
html.Div(id='display-selected-values')
])
@app.callback(
Output('cities-radio', 'options'),
Input('countries-radio', 'value'))
def set_cities_options(selected_country):
return [{'label': i, 'value': i} for i in all_options[selected_country]]
@app.callback(
Output('cities-radio', 'value'),
Input('cities-radio', 'options'))
def set_cities_value(available_options):
return available_options[0]['value']
@app.callback(
Output('display-selected-values', 'children'),
Input('countries-radio', 'value'),
Input('cities-radio', 'value'))
def set_display_children(selected_country, selected_city):
return '{} is a city in {}'.format(
selected_city, selected_country,
)
if __name__ == '__main__':
app.run_server(debug=True)
728x90
'IT 개인학습' 카테고리의 다른 글
앱맵(Appmap) (0) | 2023.06.05 |
---|---|
Anvil, Full stack web apps (0) | 2023.06.02 |
Manim, 3Blue1Brown (0) | 2023.04.28 |
댓글