mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/cief-dashboard.git
synced 2026-08-24 23:14:13 +00:00
112 lines
4.0 KiB
Python
112 lines
4.0 KiB
Python
from app import *
|
|
|
|
# data
|
|
df=pd.read_csv('data/warehouse2.csv',parse_dates=['Date'])
|
|
|
|
# marks
|
|
date_list=df.loc[:,"Date"].dt.strftime('%Y%m').unique()
|
|
last_month=(df.loc[:,"Date"].max()+pd.Timedelta(30, unit='D')).strftime('%Y%m')
|
|
date_list=np.append(date_list,last_month)
|
|
date_index=list(range(len(date_list)))
|
|
|
|
colors = {
|
|
'background': '#111111',
|
|
'text': '#7FDBFF'}
|
|
|
|
layout = html.Div([
|
|
html.H1('Warehouse information'),
|
|
|
|
dcc.Graph(id='output-cbm'),
|
|
|
|
dcc.Graph(id='output-ctn'),
|
|
|
|
dbc.Row([
|
|
dbc.Col(dcc.Graph(id='output-destination_port')),
|
|
dbc.Col(dcc.Graph(id='output-remark')),
|
|
dbc.Col(dcc.Graph(id='output-delivery_status'))
|
|
]),
|
|
|
|
dbc.Row([
|
|
dbc.Col(
|
|
dcc.RangeSlider(
|
|
id='input-month',
|
|
min=date_index[0],
|
|
max=date_index[-1],
|
|
step=1,
|
|
marks=dict(zip(date_index,date_list)),
|
|
value=[date_index[-4],date_index[-1]]
|
|
)
|
|
),
|
|
dbc.Col(
|
|
dbc.Button("Update Information", id="input-update", className="mr-2")
|
|
)
|
|
])
|
|
])
|
|
|
|
@app.callback(
|
|
[Output('output-cbm', 'figure'),
|
|
Output('output-ctn', 'figure'),
|
|
Output('output-destination_port', 'figure'),
|
|
Output('output-delivery_status', 'figure'),
|
|
Output('output-remark', 'figure')],
|
|
Input('input-update', 'n_clicks'),
|
|
State('input-month', 'value')
|
|
)
|
|
def update_figure(n_clicks,selected_month):
|
|
start_date=date_list[selected_month[0]]
|
|
start_date=pd.to_datetime(start_date,format='%Y%m')
|
|
end_date=date_list[selected_month[1]]
|
|
end_date=pd.to_datetime(end_date,format='%Y%m')
|
|
filtered_df = df.loc[df.loc[:,'Date'] >= start_date]
|
|
filtered_df = filtered_df.loc[filtered_df.loc[:,'Date'] <= end_date]
|
|
|
|
fig_cbm = px.bar(filtered_df, x="Date", y="CBM",color="CBM",hover_data=['Daily CBM','Marking'])
|
|
fig_cbm.update_layout(
|
|
plot_bgcolor=colors['background'],
|
|
paper_bgcolor=colors['background'],
|
|
font_color=colors['text'])
|
|
|
|
fig_ctn = px.bar(filtered_df, x="Date", y="CTN",color="CTN",hover_data=['Daily CTN','Marking'])
|
|
fig_ctn.update_layout(
|
|
plot_bgcolor=colors['background'],
|
|
paper_bgcolor=colors['background'],
|
|
font_color=colors['text'])
|
|
|
|
# get destination port count
|
|
destination_port_count=filtered_df.loc[:,'Destination port'].groupby(by=filtered_df.loc[:,'Destination port']).count()
|
|
destination_port_count=pd.DataFrame(destination_port_count)
|
|
destination_port_count.columns=['Count']
|
|
destination_port_count.reset_index(inplace=True)
|
|
|
|
fig_destination_port = px.pie(destination_port_count, values='Count', names='Destination port',title='Destination port')
|
|
fig_destination_port.update_layout(
|
|
plot_bgcolor=colors['background'],
|
|
paper_bgcolor=colors['background'],
|
|
font_color=colors['text'])
|
|
|
|
# delivery status
|
|
delivery_status_count=filtered_df.loc[:,'Delivery status'].groupby(by=filtered_df.loc[:,'Delivery status']).count()
|
|
delivery_status_count=pd.DataFrame(delivery_status_count)
|
|
delivery_status_count.columns=['Count']
|
|
delivery_status_count.reset_index(inplace=True)
|
|
|
|
fig_delivery_status = px.pie(delivery_status_count, values='Count', names='Delivery status',title='Delivery status')
|
|
fig_delivery_status.update_layout(
|
|
plot_bgcolor=colors['background'],
|
|
paper_bgcolor=colors['background'],
|
|
font_color=colors['text'])
|
|
|
|
# get remark count
|
|
remark_count=filtered_df.loc[:,'Remark'].groupby(by=filtered_df.loc[:,'Remark']).count()
|
|
remark_count=pd.DataFrame(remark_count)
|
|
remark_count.columns=['Count']
|
|
remark_count.reset_index(inplace=True)
|
|
|
|
fig_remark = px.pie(remark_count, values='Count', names='Remark',hover_data=['Count'],title='Remark')
|
|
fig_remark.update_layout(
|
|
plot_bgcolor=colors['background'],
|
|
paper_bgcolor=colors['background'],
|
|
font_color=colors['text'])
|
|
|
|
return(fig_cbm,fig_ctn,fig_destination_port,fig_delivery_status,fig_remark)
|