Membuat paginasi pada tabel statistik kunci
Tabel statistik kunci yang dibuat pada pelajaran sebelumnya merupakan tambahan yang sangat berguna bagi perangkat analitik perusahaan e-commerce global. Namun, tabel tersebut terlalu panjang!
Mari kita perbaiki dengan opsi paginasi bawaan Dash AG Grid. Ini akan meningkatkan kegunaan aplikasi secara signifikan dan memungkinkan pengguna menelusuri bagian-bagian data sesuai kebutuhan.
Latihan ini merupakan bagian dari kursus
Membangun Dasbor dengan Dash dan Plotly
Instruksi latihan
- Buat objek Dash AG Grid bernama
gridmenggunakan fungsiAgGriddi bawah baris21. - Aktifkan paginasi untuk
griddengan menyetel parameterpaginationdi bawah baris25. - Batasi setiap halaman untuk menampilkan 7 baris dengan menyetel parameter
paginationPageSizedi bawah baris28.
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": "Major Category"},
{"field": "Total Sales ($)", "valueFormatter": money_fmt},
{"field": "Average Order Value ($)", "valueFormatter": money_fmt},
{"field": "Sales Volume"}
]
# Create a grid
grid = ____(
columnDefs=column_defs,
rowData=key_stats_tb.to_dict("records"),
# Turn on pagination
dashGridOptions={
"____": ____,
# Show 7 rows per page
"____": ____}
)
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)