Programer123 commited on
Commit
dfdb553
·
verified ·
1 Parent(s): 876f873

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +98 -98
app.py CHANGED
@@ -1,98 +1,98 @@
1
- from dash import Dash, html, dcc, Input, Output, dash_table
2
- import dash_bootstrap_components as dbc
3
- import pandas as pd
4
- import plotly.express as px
5
-
6
- df = pd.DataFrame({
7
- "Categoria": ["A", "B", "C", "D", "E"],
8
- "Vendas": [120, 200, 150, 80, 220],
9
- "Lucro": [30, 70, 40, 20, 90]
10
- })
11
-
12
- app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
13
-
14
- app.layout = dbc.Container([
15
- html.H1("Dashboard em Dash", className="my-4"),
16
-
17
- dbc.Row([
18
- dbc.Col([
19
- html.Label("Escolhe a métrica:"),
20
- dcc.Dropdown(
21
- id="coluna-dropdown",
22
- options=[
23
- {"label": "Vendas", "value": "Vendas"},
24
- {"label": "Lucro", "value": "Lucro"}
25
- ],
26
- value="Vendas",
27
- clearable=False
28
- )
29
- ], md=4)
30
- ], className="mb-4"),
31
-
32
- dbc.Row([
33
- dbc.Col(dbc.Card([
34
- dbc.CardBody([
35
- html.H4("Total", className="card-title"),
36
- html.H2(id="total-card")
37
- ])
38
- ]), md=4),
39
-
40
- dbc.Col(dbc.Card([
41
- dbc.CardBody([
42
- html.H4("Média", className="card-title"),
43
- html.H2(id="media-card")
44
- ])
45
- ]), md=4),
46
-
47
- dbc.Col(dbc.Card([
48
- dbc.CardBody([
49
- html.H4("Máximo", className="card-title"),
50
- html.H2(id="max-card")
51
- ])
52
- ]), md=4),
53
- ], className="mb-4"),
54
-
55
- dbc.Row([
56
- dbc.Col([
57
- dcc.Graph(id="grafico-barras")
58
- ], md=8),
59
-
60
- dbc.Col([
61
- dash_table.DataTable(
62
- id="tabela",
63
- columns=[{"name": i, "id": i} for i in df.columns],
64
- data=df.to_dict("records"),
65
- style_table={"overflowX": "auto"},
66
- style_cell={"textAlign": "center"},
67
- page_size=5
68
- )
69
- ], md=4)
70
- ])
71
- ], fluid=True)
72
-
73
-
74
- @app.callback(
75
- Output("grafico-barras", "figure"),
76
- Output("total-card", "children"),
77
- Output("media-card", "children"),
78
- Output("max-card", "children"),
79
- Input("coluna-dropdown", "value")
80
- )
81
- def atualizar_dashboard(coluna_escolhida):
82
- fig = px.bar(
83
- df,
84
- x="Categoria",
85
- y=coluna_escolhida,
86
- color="Categoria",
87
- title=f"{coluna_escolhida} por Categoria"
88
- )
89
-
90
- total = df[coluna_escolhida].sum()
91
- media = round(df[coluna_escolhida].mean(), 2)
92
- maximo = df[coluna_escolhida].max()
93
-
94
- return fig, total, media, maximo
95
-
96
-
97
- if __name__ == "__main__":
98
- app.run(debug=True)
 
1
+ from dash import Dash, html, dcc, Input, Output, dash_table
2
+ import dash_bootstrap_components as dbc
3
+ import pandas as pd
4
+ import plotly.express as px
5
+
6
+ df = pd.DataFrame({
7
+ "Categoria": ["A", "B", "C", "D", "E"],
8
+ "Vendas": [120, 200, 150, 80, 220],
9
+ "Lucro": [30, 70, 40, 20, 90]
10
+ })
11
+
12
+ app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
13
+
14
+ app.layout = dbc.Container([
15
+ html.H1("Dashboard em Dash", className="my-4"),
16
+
17
+ dbc.Row([
18
+ dbc.Col([
19
+ html.Label("Escolhe a métrica:"),
20
+ dcc.Dropdown(
21
+ id="coluna-dropdown",
22
+ options=[
23
+ {"label": "Vendas", "value": "Vendas"},
24
+ {"label": "Lucro", "value": "Lucro"}
25
+ ],
26
+ value="Vendas",
27
+ clearable=False
28
+ )
29
+ ], md=4)
30
+ ], className="mb-4"),
31
+
32
+ dbc.Row([
33
+ dbc.Col(dbc.Card([
34
+ dbc.CardBody([
35
+ html.H4("Total", className="card-title"),
36
+ html.H2(id="total-card")
37
+ ])
38
+ ]), md=4),
39
+
40
+ dbc.Col(dbc.Card([
41
+ dbc.CardBody([
42
+ html.H4("Média", className="card-title"),
43
+ html.H2(id="media-card")
44
+ ])
45
+ ]), md=4),
46
+
47
+ dbc.Col(dbc.Card([
48
+ dbc.CardBody([
49
+ html.H4("Máximo", className="card-title"),
50
+ html.H2(id="max-card")
51
+ ])
52
+ ]), md=4),
53
+ ], className="mb-4"),
54
+
55
+ dbc.Row([
56
+ dbc.Col([
57
+ dcc.Graph(id="grafico-barras")
58
+ ], md=8),
59
+
60
+ dbc.Col([
61
+ dash_table.DataTable(
62
+ id="tabela",
63
+ columns=[{"name": i, "id": i} for i in df.columns],
64
+ data=df.to_dict("records"),
65
+ style_table={"overflowX": "auto"},
66
+ style_cell={"textAlign": "center"},
67
+ page_size=5
68
+ )
69
+ ], md=4)
70
+ ])
71
+ ], fluid=True)
72
+
73
+
74
+ @app.callback(
75
+ Output("grafico-barras", "figure"),
76
+ Output("total-card", "children"),
77
+ Output("media-card", "children"),
78
+ Output("max-card", "children"),
79
+ Input("coluna-dropdown", "value")
80
+ )
81
+ def atualizar_dashboard(coluna_escolhida):
82
+ fig = px.bar(
83
+ df,
84
+ x="Categoria",
85
+ y=coluna_escolhida,
86
+ color="Categoria",
87
+ title=f"{coluna_escolhida} por Categoria"
88
+ )
89
+
90
+ total = df[coluna_escolhida].sum()
91
+ media = round(df[coluna_escolhida].mean(), 2)
92
+ maximo = df[coluna_escolhida].max()
93
+
94
+ return fig, total, media, maximo
95
+
96
+
97
+ if __name__ == "__app__":
98
+ app.run_server(host="0.0.0.0", port=7860, debug=False)