Un borrador de panel de ventas
Gracias a tu gran trabajo hasta ahora con la empresa de e-commerce, te han pedido que les ayudes a sustituir por completo sus paneles actuales, que requieren software propietario y le cuestan a la organización una fortuna cada mes.
Este no será el producto final; quieren un primer borrador de lo que es posible con Dash. Les gustaría un gráfico de líneas con las ventas totales por mes y un gráfico de barras con las ventas totales por país. También estaría bien incluir una estadística de resumen de alto nivel, como el mes con mayor volumen de pedidos.
Tu tarea es crear un panel rápido usando gráficos de Plotly apilados uno encima de otro.
Este ejercicio forma parte del curso
Creación de paneles con Dash y Plotly
Instrucciones del ejercicio
- Configura un layout de Dash en la línea
14. - Añade la variable
line_figen la línea17. - Añade la variable
bar_figen la línea19. - Añade un título
.H3()mostrandomax_country(el país con las ventas totales más altas).
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
from dash import Dash, dcc, html
import pandas as pd
import plotly.express as px
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
ecom_line = ecom_sales.groupby('Year-Month')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
line_fig = px.line(data_frame=ecom_line, x='Year-Month', y='Total Sales ($)', title='Total Sales by Month')
ecom_bar = ecom_sales.groupby('Country')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
max_country = ecom_bar.sort_values(by='Total Sales ($)', ascending=False).loc[0]['Country']
bar_fig = px.bar(data_frame=ecom_bar, x='Total Sales ($)', y='Country', orientation='h', title='Total Sales by Country')
app = Dash()
# Set up the layout
app.____ = [
html.H1('Sales Figures'),
# Add the line figure
dcc.___(id='my-line-fig', figure=____),
# Add the bar figure
dcc.___(id='my-bar-fig', figure=____),
# Add the H3 title
html.____(f'The largest country by sales was {____}!')
]
if __name__ == '__main__':
app.run(debug=True)