Menerapkan gaya pada tabel statistik kunci
Kepala departemen keuangan menyukai tabel statistik kunci yang sebelumnya Anda buat. Namun, sebagai penggemar berat Excel, beliau meminta beberapa pemformatan tambahan pada tabel tersebut.
Secara khusus, beliau meminta:
- Semua konten sel diratakan ke kiri.
- Latar belakang sel berwarna hitam dengan teks putih.
Latihan ini merupakan bagian dari kursus
Membangun Dasbor dengan Dash dan Plotly
Instruksi latihan
- Terapkan gaya ke semua sel menggunakan parameter
cellStyledidefaultColDefdi bawah baris23. - Gaya sel agar rata kiri menggunakan properti
textAligndi bawah baris25. - Gaya sel dengan latar belakang hitam dan teks putih menggunakan properti
backgroundColordancolordi bawah baris27.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
from dash import Dash, dcc, html, Input, Output, callback
import plotly.express as px
import pandas as pd
from dash_ag_grid import AgGrid
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'
key_stats_tb = ecom_sales.groupby(['Country','Major Category', 'Minor Category'])['OrderValue'].agg(['sum', 'count', 'mean']).reset_index().rename(columns={'count':'Sales Volume', 'sum':'Total Sales ($)', 'mean':'Average Order Value ($)'})
money_fmt = {"function": ("params.value.toLocaleString('en-US', {style: 'currency', currency: 'USD'})")}
column_defs = [
{"field": "Country"},
{"field": "Major Category"},
{"field": "Minor Category"},
{"field": "Total Sales ($)", "valueFormatter": money_fmt},
{"field": "Average Order Value ($)", "valueFormatter": money_fmt},
{"field": "Sales Volume"},
]
grid = AgGrid(
columnDefs=column_defs,
rowData=key_stats_tb.to_dict("records"),
defaultColDef={
# Apply styling to all cells
"____": {
# Style content aligned left
"____": "____",
# Style background color and text color
"____": "____",
"____": "____"}}
)
app = Dash()
app.layout = [
html.Img(src=logo_link, style={'margin':'30px 0px 0px 0px' }),
html.H1('Sales Aggregations'),
html.Div([
html.H2('Key Aggregations'),
grid],
style={'width':'850px', 'height':'750px', 'margin':'0 auto'}
)
]
if __name__ == '__main__':
app.run(debug=True)