From bbf96c617d0298f6f4027f0a9b407fc1cd57c4bf Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 19 Oct 2024 14:16:39 -0500 Subject: add plotly dashboard example --- project_management/dash/app.py | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 project_management/dash/app.py (limited to 'project_management/dash') diff --git a/project_management/dash/app.py b/project_management/dash/app.py new file mode 100644 index 0000000..b6aa824 --- /dev/null +++ b/project_management/dash/app.py @@ -0,0 +1,49 @@ +# Import packages +from dash import Dash, html, dash_table, dcc +import pandas as pd +import plotly.express as px + +# Incorporate data +df = pd.read_excel('project_data.xlsx') + +# Initialize the app +app = Dash() + +# App layout +app.layout = [ + html.H1(children='Project Dashboard', style={'textAlign':'center'}), + html.Div(children = [ + dcc.Graph( + figure=px.histogram( + df, + x='Preparer', + color='High Priority?', + title='Control Count by Preparer' + ), + style = {'flex-grow':'1'} + ), + dcc.Graph( + figure=px.histogram( + df, + x='Preparer', + y='Projected Hours ', + color='Status ', + title='Project Hours by Preparer' + ), + style = {'flex-grow':'1'} + ) + ], style = {'display':'flex', 'flex-wrap':'wrap', 'justify-content':'space-between', 'align-items':'center'}), + dcc.Graph( + figure=px.pie( + df, + values = df['Preparer'].value_counts().values, + names=df['Reviewer'].value_counts().index, + title='Reviewer Breakdown', + hole=0.5 + ) + ) +] + +# Run the app +if __name__ == '__main__': + app.run(debug=True) -- cgit v1.2.3-70-g09d2