Styra objektlayout
Ditt arbete med Dash har verkligen gjort intryck i organisationen. En kollega har dock kontaktat dig om ett problem med en av deras dashboards. Den tänkta dashboarden ska ha företagets logotyp längst upp, följt av två stapeldiagram bredvid varandra.
Men logotypen sitter för nära toppen och diagrammen staplas ovanpå varandra. Vilket kaos!
Du tror att du kan använda dina CSS-kunskaper för att få ordning på objekten.
Den här övningen är en del av kursen
Bygg dashboards med Dash och Plotly
Övningsinstruktioner
- Lägg till en
30pxmarginal enbart upptill på logotypen under rad15och lämna alla övriga sidor utan marginal. - Lägg till formatering på båda diagrammen under rad
19så att de visas bredvid varandra.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
from dash import Dash, dcc, html
import plotly.express as px
import pandas as pd
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
logo_link = 'https://assets.datacamp.com/production/repositories/5893/datasets/fdbe0accd2581a0c505dab4b29ebb66cf72a1803/e-comlogo.png'
ecom_bar_major_cat = ecom_sales.groupby('Major Category')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
ecom_bar_minor_cat = ecom_sales.groupby('Minor Category')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
bar_fig_major_cat = px.bar(ecom_bar_major_cat, x='Total Sales ($)', y='Major Category', color='Major Category', color_discrete_map={'Clothes':'blue','Kitchen':'red','Garden':'green','Household':'yellow'})
bar_fig_minor_cat = px.bar(ecom_bar_minor_cat, x='Total Sales ($)', y='Minor Category')
app = Dash()
app.layout = [
html.Img(src=logo_link,
# Add margin to the logo
style={'margin':'____ ____ ____ ____'}),
html.H1('Sales breakdowns'),
dcc.Graph(
# Style the graphs to appear side-by-side
figure=bar_fig_major_cat,
style={'display':'____', 'width': '49%'}),
dcc.Graph(
figure=bar_fig_minor_cat,
style={'display':'____', 'width': '49%'}),
]
if __name__ == '__main__':
app.run(debug=True)