Spaces:
Sleeping
Sleeping
| from logging import log | |
| from dash import Dash, html, dcc, callback, Output, Input | |
| import pandas as pd | |
| import plotly.express as px | |
| from plotly.graph_objs import scatter | |
| import plotly.graph_objects as go | |
| df = pd.read_csv('1711709179672.csv',na_values="None") | |
| df.insert(4,"Size",(10 * df["Amount"].abs())/100) | |
| df['Departments'].fillna("no departments",inplace=True) | |
| app = Dash(__name__) | |
| app.layout = html.Div(children = [ | |
| html.Div( | |
| className="row", | |
| children=[ | |
| html.Div( | |
| className="four columns div-user-controls", | |
| children=[ | |
| html.H2("XPENCE-INSIGHT"), | |
| html.H3("""Visualising Xpence transaction"""), | |
| html.H4("""Pick one User from the dropdown below."""), | |
| ], | |
| ), | |
| html.Div( | |
| className="eight columns div-for-charts bg-grey", | |
| children=[ | |
| dcc.Dropdown( | |
| df['Card holder'].unique(), | |
| 'Radu Pertescu', | |
| id='xaxis-column', | |
| placeholder= "Radu Pertescu", | |
| ), | |
| dcc.Graph(id="scatterGraph",animate=True), | |
| dcc.Graph(id='barGraph'), | |
| dcc.Graph(id='areaGraph'), | |
| dcc.Graph(id='histogramGraph') | |
| ] | |
| ), | |
| ] | |
| ), | |
| #dcc.Graph(figure=px.scatter(df,x="Transaction Date", y="Amount")), | |
| ##dcc.Graph(figure=px.funnel(df,x='Amount',y='Category')) | |
| #dcc.Graph(figure=px.scatter(df,x="Amount", y="Transaction Date",color="Card holder")), | |
| # dcc.Graph(figure=px.icicle(df,path=[px.Constant("all"), 'Approval Status', 'Card holder','Category'],color='Category',color_continuous_scale='RdBu')), | |
| # dcc.Graph(figure=px.sunburst(df,path=["Transaction Type","Card holder","Approval Status"],color='Amount')), | |
| # dcc.Graph(figure=px.parallel_categories(df,dimensions=["Card holder","Category","Branches","Departments","Approval Status","Receipt"],color="Amount")), | |
| # dcc.Graph(figure=px.scatter(df,x="Amount", y="Merchant",color="Card holder",opacity=0.7)), | |
| ]) | |
| def update_graph(userName): | |
| filtered_df = df[df["Card holder"] == userName] | |
| fig = px.scatter(filtered_df,x="Amount", y="Transaction Date",color="Transaction Type",title="Transaction type and amount based on date") | |
| return fig | |
| def update_bar_graph(userName): | |
| filtered_df = df[df["Card holder"] == userName] | |
| count_data_frame = filtered_df | |
| count_data_frame = filtered_df.groupby('Category').count().reset_index() | |
| fig = px.bar(count_data_frame,x="Category", y="Amount",color='Category',title="Category count") | |
| return fig | |
| def update_area_graph(userName): | |
| filtered_df = df[df["Card holder"] == userName] | |
| filtered_df['Transaction Date'] = pd.to_datetime(filtered_df['Transaction Date'],format='%d/%m/%Y %H:%M') | |
| filtered_df['Transaction Date'] = filtered_df['Transaction Date'].dt.round('D') | |
| filtered_df['Transaction Date'].dt.strftime("%Y-%m-%d") | |
| transaction_data_frame = filtered_df | |
| transaction_data_frame = filtered_df.groupby('Transaction Date').count().reset_index() | |
| fig = px.area(transaction_data_frame,x='Transaction Date',y='Amount',markers=True,title="Number of transaction on a single day") | |
| return fig | |
| def update_histogram_graph(userName): | |
| filtered_df = df[df["Card holder"] == userName] | |
| fig=px.histogram(filtered_df,x='Approval Status',color="Approval Status",title="Approval status count") | |
| return fig | |
| if __name__ == '__main__': | |
| app.run(port='7860',debug=True,host='0.0.0.0') | |