import dash import dash_core_components as dcc import dash_html_components as html import pandas as pd import plotly.graph_objs as go app = dash.Dash() df = pd.read_csv('gdp_data.csv') countries = df['Country'].unique() app.layout = html.Div([ html.H1('GDP Dashboard'), dcc.Dropdown( id='country-dropdown', options=[{'label': country, 'value': country} for country in countries], value='United States' ), dcc.Graph(id='gdp-graph') ]) @app.callback( dash.dependencies.Output('gdp-graph', 'figure'), [dash.dependencies.Input('country-dropdown', 'value')] ) def update_graph(country): data = df[df['Country'] == country] trace = go.Bar( x=data['Year'], y=data['GDP'] ) return go.Figure({'data': [trace], 'layout': go.Layout(title=f'GDP of {country}')}) if __name__ == '__main__': app.run_server()
import dash import dash_core_components as dcc import dash_html_components as html import plotly.graph_objs as go import random app = dash.Dash() app.layout = html.Div([ html.H1('Real-time Data Dashboard'), dcc.Graph(id='plot1', animate=True), dcc.Graph(id='plot2', animate=True) ]) @app.callback( dash.dependencies.Output('plot1', 'figure'), [dash.dependencies.Input('interval-component', 'n_intervals')] ) def update_plot1(n_intervals): x = [i for i in range(10)] y = [random.randint(0, 100) for i in range(10)] trace = go.Scatter(x=x, y=y) return go.Figure({'data': [trace], 'layout': go.Layout(title='Random data generator')}) @app.callback( dash.dependencies.Output('plot2', 'figure'), [dash.dependencies.Input('interval-component', 'n_intervals')] ) def update_plot2(n_intervals): x = [i for i in range(10)] y = [random.randint(0, 100) for i in range(10)] trace = go.Bar(x=x, y=y) return go.Figure({'data': [trace], 'layout': go.Layout(title='Random data generator')}) if __name__ == '__main__': app.run_server()Package library: plotly, Flask, dcc, html