added some more changes
This commit is contained in:
Binary file not shown.
@ -1,6 +1,5 @@
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
import plotly.express as px
|
from dash import Dash, dcc, html, dash_table
|
||||||
from dash import Dash, dcc, html
|
|
||||||
from dash.dependencies import Input, Output
|
from dash.dependencies import Input, Output
|
||||||
|
|
||||||
from ..data.loader import DataSchema
|
from ..data.loader import DataSchema
|
||||||
@ -9,7 +8,7 @@ from . import ids
|
|||||||
|
|
||||||
def render(app: Dash, data: pd.DataFrame) -> html.Div:
|
def render(app: Dash, data: pd.DataFrame) -> html.Div:
|
||||||
@app.callback(
|
@app.callback(
|
||||||
Output(ids.BAR_CHART, "children"),
|
Output(ids.DATA_TABLE, "children"),
|
||||||
[
|
[
|
||||||
Input(ids.YEAR_DROPDOWN, "value"),
|
Input(ids.YEAR_DROPDOWN, "value"),
|
||||||
Input(ids.MONTH_DROPDOWN, "value"),
|
Input(ids.MONTH_DROPDOWN, "value"),
|
||||||
@ -24,7 +23,8 @@ def render(app: Dash, data: pd.DataFrame) -> html.Div:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if filtered_data.shape[0] == 0:
|
if filtered_data.shape[0] == 0:
|
||||||
return html.Div("No data selected.", id=ids.DATA_TABLE)
|
return html.Div("No data selected.")
|
||||||
|
|
||||||
def create_pivot_table() -> pd.DataFrame:
|
def create_pivot_table() -> pd.DataFrame:
|
||||||
pt = filtered_data.pivot_table(
|
pt = filtered_data.pivot_table(
|
||||||
values=DataSchema.AMOUNT,
|
values=DataSchema.AMOUNT,
|
||||||
@ -35,6 +35,11 @@ def render(app: Dash, data: pd.DataFrame) -> html.Div:
|
|||||||
)
|
)
|
||||||
return pt.reset_index().sort_values(DataSchema.AMOUNT, ascending=False)
|
return pt.reset_index().sort_values(DataSchema.AMOUNT, ascending=False)
|
||||||
|
|
||||||
return html.Div(dcc.Data_table(data=create_pivot_table(data), id=ids.DATA_TABLE)
|
pt = create_pivot_table()
|
||||||
|
|
||||||
return html.Div(id=ids.DATA_TABLE)
|
return dash_table.DataTable(
|
||||||
|
data=pt.to_dict("records"),
|
||||||
|
columns=[{"name": i, "id": i} for i in pt.columns],
|
||||||
|
)
|
||||||
|
|
||||||
|
return html.Div(id=ids.DATA_TABLE)
|
@ -1,14 +1,15 @@
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
from dash import Dash, html
|
from dash import Dash, html
|
||||||
from src.components import (
|
from src.components import (
|
||||||
bar_chart,
|
bar_chart,
|
||||||
category_dropdown,
|
|
||||||
month_dropdown,
|
|
||||||
data_table,
|
data_table,
|
||||||
|
pie_chart,
|
||||||
year_dropdown,
|
year_dropdown,
|
||||||
|
month_dropdown,
|
||||||
|
category_dropdown,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
|
def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
|
||||||
return html.Div(
|
return html.Div(
|
||||||
className="app-div",
|
className="app-div",
|
||||||
@ -24,6 +25,7 @@ def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
bar_chart.render(app, data),
|
bar_chart.render(app, data),
|
||||||
|
pie_chart.render(app, data),
|
||||||
data_table.render(app, data),
|
data_table.render(app, data),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user