Un ejemplo para crear un dashboard interactivo con Plotly y Dash podría ser el siguiente:
Supongamos que tenemos un conjunto de datos de ventas de una tienda en línea que deseamos visualizar en un dashboard. Podemos utilizar la biblioteca Plotly para crear diferentes gráficos y Dash para crear una interfaz de usuario interactiva. Primero, importamos las bibliotecas Plotly y Dash, los datos y creamos nuestro objeto Dash:
import plotly.express as px
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
app = dash.Dash(__name__)
df = pd.read_csv('sales_data.csv')
A continuación, podemos definir nuestro layout, que es la estructura y diseño de nuestro dashboard. En este ejemplo, creamos un gráfico de barras y un gráfico de pastel, así como contenedores HTML para la selección de filtro y la presentación del gráfico.
app.layout = html.Div([
html.H1("Ventas por categoría"),
html.Div([
dcc.Dropdown(
id='category-dropdown',
options=[{'label': i, 'value': i} for i in df.Category.unique()],
value='All Category'
)
], style={'width': '30%'}),
html.Br(),
html.Div([
dcc.Graph(id='category-bar-chart')
], style={'width': '45%', 'display': 'inline-block', 'padding': '0 20'}),
html.Div([
dcc.Graph(id='category-pie-chart')
], style={'width': '45%', 'display': 'inline-block', 'padding': '0 20'})
])
Luego, definimos nuestros callbacks, que son funciones que se activan cuando cambia la selección de filtro. Primero, creamos la función que genera nuestro gráfico de barras al filtrar por Categoría:
@app.callback(
dash.dependencies.Output('category-bar-chart', 'figure'),
[dash.dependencies.Input('category-dropdown', 'value')]
)
def update_category_bar_chart(selected_category):
filtered_df = df if selected_category == 'All Category' else df[df.Category == selected_category]
category_df = filtered_df.groupby(['Category'])['Sales'].sum().reset_index()
figure = px.bar(category_df, x='Category', y='Sales', color='Category', title='Ventas por categoría')
return figure
En segundo lugar, creamos la función que genera nuestro gráfico de pastel al filtrar por Categoría:
@app.callback(
dash.dependencies.Output('category-pie-chart', 'figure'),
[dash.dependencies.Input('category-dropdown', 'value')]
)
def update_category_pie_chart(selected_category):
filtered_df = df if selected_category == 'All Category' else df[df.Category == selected_category]
category_df = filtered_df.groupby(['Category'])['Sales'].sum().reset_index()
figure = px.pie(category_df, values='Sales', names='Category', title='Ventas por categoría')
return figure
¡Listo! Ahora podemos ejecutar nuestra aplicación Dash con app.run_server() y comenzar a interactuar con nuestro dashboard. Con nuestro menú desplegable "category-dropdown", podemos filtrar nuestras ventas por categoría y ver los gráficos actualizados en tiempo real. Este es solo un ejemplo básico de lo que se puede hacer con Plotly y Dash para crear dashboards interactivos. La combinación de estas dos bibliotecas proporciona una gran cantidad de opciones para la visualización de datos y la creación de aplicaciones interactivas.