Skip to content

Commit

Permalink
Aplicando as mesmas mudanças da branch Google-sheets
Browse files Browse the repository at this point in the history
  • Loading branch information
Oesterd committed Mar 1, 2024
1 parent fd26021 commit d5ced1a
Show file tree
Hide file tree
Showing 9 changed files with 146 additions and 146 deletions.
Binary file modified Dados_turma.xlsx
Binary file not shown.
Binary file modified dados_teste.xlsx
Binary file not shown.
12 changes: 4 additions & 8 deletions src/Reusables/Dist_notas.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@

{'field': 'Alunos'},

{'headerName': 'Gênero',
'field': 'Sexo'},
{'field': 'Gênero'},

{'field': 'Etnia'},

Expand All @@ -27,18 +26,15 @@
{'field': 'Renda (R$)',
'filter': 'agNumberColumnFilter'},

{'headerName': 'Média aluno',
'field': 'Med aluno',
{'field': 'Média aluno',
'valueFormatter': numformat,
'filter': 'agNumberColumnFilter'},

{'headerName': 'Média turma',
'field': 'Med turma',
{'field': 'Média turma',
'valueFormatter': numformat,
'filter': 'agNumberColumnFilter'},

{'headerName': 'Frequência',
'field': 'Freq',
{'field': 'Frequência',
'valueFormatter': numformat,
'filter': 'agNumberColumnFilter'},

Expand Down
22 changes: 11 additions & 11 deletions src/Reusables/Sidebars.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Ops = {
'Nenhuma': ['Nenhuma', 'Sexo', 'Escola', 'Etnia'],
'Sexo': ['Nenhuma', 'Escola', 'Etnia'],
'Gênero': ['Nenhuma', 'Escola', 'Etnia'],
'Escola': ['Nenhuma', 'Sexo', 'Etnia'],
'Etnia': ['Nenhuma', 'Sexo', 'Escola']
}

Ops2 = {
'Med aluno': ['Histograma', 'Cumulativo'],
'Média aluno': ['Histograma', 'Cumulativo'],
'Resultado': ['Histograma'],
}

Expand All @@ -23,7 +23,7 @@ def pg1():
),

html.Div([
dmc.Select(id='dropdown11', label='Escolha o eixo x', value='Med aluno',
dmc.Select(id='dropdown11', label='Escolha o eixo x:', value='Média aluno',
data=list(Ops2.keys()), clearable=False),
]
),
Expand All @@ -46,7 +46,7 @@ def pg1():

html.Div([
dmc.Select(id='dropdown14', label='Divisão por linhas:', value='Nenhuma',
data=['Nenhuma', 'Sexo', 'Etnia', 'Escola'],
data=['Nenhuma', 'Gênero', 'Etnia', 'Escola'],
clearable=False),
]
),
Expand Down Expand Up @@ -87,8 +87,8 @@ def pg2():

html.Div([
html.Div([
dmc.Select(id='dropdown20', label='Escolha o eixo x', value='Renda (R$)',
data=['Renda (R$)', 'Freq'], clearable=False)
dmc.Select(id='dropdown20', label='Escolha o eixo x:', value='Renda (R$)',
data=['Renda (R$)', 'Frequência'], clearable=False)
]),
]),

Expand All @@ -97,7 +97,7 @@ def pg2():
]),

html.Div([
dmc.Select(id='dropdown22', label='Divisão por linhas:', value='Nenhuma', data=['Nenhuma', 'Sexo', 'Escola'], clearable=False),
dmc.Select(id='dropdown22', label='Divisão por linhas:', value='Nenhuma', data=['Nenhuma', 'Gênero', 'Escola'], clearable=False),
]),

html.Div([
Expand Down Expand Up @@ -165,8 +165,8 @@ def pg4():
),

html.Div([
dmc.Select(id='dropdown41', label='Escolha o eixo y:', value='Med turma',
data=['Med turma', 'AP', 'RM', 'RF', 'RMF'], clearable=False),
dmc.Select(id='dropdown41', label='Escolha o eixo y:', value='Média turma',
data=['Média turma', 'AP', 'RM', 'RF', 'RMF'], clearable=False),
]),
]
)
Expand All @@ -189,8 +189,8 @@ def pg5():

html.Div([
html.Div([
dmc.Select(id='dropdown51', label='Escolha o eixo y:', value='Med turma',
data=['Med turma', 'AP', 'RM', 'RF', 'RMF'], clearable=False),
dmc.Select(id='dropdown51', label='Escolha o eixo y:', value='Média turma',
data=['Média turma', 'AP', 'RM', 'RF', 'RMF'], clearable=False),
]),
]),

Expand Down
5 changes: 2 additions & 3 deletions src/Reusables/Turmas.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

clndef = [

{'headerName': 'Código', 'field': 'Cod', "sortable": True},
{'field': 'Código', "sortable": True},

{'field': 'Disciplina', "sortable": True},

Expand All @@ -28,8 +28,7 @@
'valueFormatter': gradeformat,
'filter': 'agNumberColumnFilter'},

{'headerName': 'Média turma',
'field': 'Med turma',
{'field': 'Média turma',
'valueFormatter': gradeformat,
'filter': 'agNumberColumnFilter'},

Expand Down
53 changes: 25 additions & 28 deletions src/pages/pg1.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
import dash
from dash import html, dcc, Input, Output, State, callback, clientside_callback
import dash_ag_grid as dag

from dash.exceptions import PreventUpdate


import plotly.express as px

import pandas as pd





# Iniciando o aplicativo
dash.register_page(__name__, name='Distribuição de notas', path='/')

Expand All @@ -19,26 +21,26 @@



# Não remover, é necessário para o callback em cadeia
Ops = {
'Nenhuma': ['Nenhuma', 'Sexo', 'Escola', 'Etnia'],
'Sexo': ['Nenhuma', 'Escola', 'Etnia'],
'Escola': ['Nenhuma', 'Sexo', 'Etnia'],
'Etnia': ['Nenhuma', 'Sexo', 'Escola']
}

Ops2 = {
'Med aluno': ['Histograma', 'Cumulativo'],
'Resultado': ['Histograma'],
}
grid = dag.AgGrid(
id='grid',
rowData=[],
columnDefs=clndef,
defaultColDef=dfclndef,
dashGridOptions={'pagination': True},
style={'height': '400px'}
)



# Layout da página

# ----------------------------------- Layout da página ---------------------------------------------------
layout = \
html.Div([
# Grid
html.Div(id='pg1grid'),
html.Div([
grid
]),

# Gráfico
html.Div([
Expand Down Expand Up @@ -85,22 +87,13 @@ def drop4init(options14, options15):

# -------------------------------------------------------------------------------------
@callback(
Output('pg1grid', 'children'),
Output('grid', 'rowData'),
Input('Dados_notas', 'data'),
)


def Grid_maker(Notas_df):
grid = dag.AgGrid(
id='grid',
rowData=Notas_df,
columnDefs=clndef,
defaultColDef=dfclndef,
dashGridOptions={'pagination': True},
style={'height': '400px'}
)

return grid
def Grid_maker(data):
return data



Expand All @@ -121,12 +114,16 @@ def Grid_maker(Notas_df):

def matplot_html(rows, drop1, drop2, drop3, drop4, drop5, drop6):

## Criando o gráfico
# Evitando que o Output seja atualizado enquanto os Inputs ainda não estão presente no layout
if not rows:
raise PreventUpdate


# Modificando os dados conforme a filtragem do usuário
dff = pd.DataFrame(rows)



if drop3 == 'Nenhuma':
drop3 = None
else:
Expand Down
88 changes: 42 additions & 46 deletions src/pages/pg2.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import dash
from dash import html, dcc, Input, Output, State, callback, clientside_callback
import dash_ag_grid as dag
from dash.exceptions import PreventUpdate


import plotly.express as px
Expand All @@ -11,58 +12,58 @@





# Iniciando o aplicativo
dash.register_page(__name__, name='Correlação')





filename = 'Reusables/Dist_notas.py'
exec(open(filename, encoding="utf-8").read())



# Não remover, é necessário para o callback em cadeia
Ops = {
'Nenhuma': ['Nenhuma', 'Sexo', 'Escola', 'Etnia'],
'Sexo': ['Nenhuma', 'Escola', 'Etnia'],
'Escola': ['Nenhuma', 'Sexo', 'Etnia'],
'Etnia': ['Nenhuma', 'Sexo', 'Escola']
}


grid = dag.AgGrid(
id='grid2',
rowData=[],
columnDefs=clndef,
defaultColDef=dfclndef,
dashGridOptions={'pagination': True},
style={'height': '400px'}
)

layout = \
html.Div([
html.Div(id='pg3grid'),

html.Br(),


# ----------------------------------- Layout da página ---------------------------------------------------
layout = \
html.Div([
# Gráfico
html.Div([
dcc.Graph(id='scatter')
], style={'flex-basis': 800}),

# Valores de correlação
html.Div([
dcc.Textarea(
id='textpg3',
disabled=True,
className='textarea'
)
], style={'position': 'relative', 'left': 75, 'top': 100}),
grid
]),

html.Br(),

], style={'display': 'flex', 'flexDirection': 'row', 'gap': 20, 'flex': 1}),


html.Div([
# Gráfico
html.Div([
dcc.Graph(id='scatter')
], style={'flex-basis': 800}),

# Valores de correlação
html.Div([
dcc.Textarea(
id='textpg2',
disabled=True,
className='textarea'
)
], style={'position': 'relative', 'left': 75, 'top': 100}),

], style={'display': 'flex', 'flexDirection': 'row', 'gap': 20, 'flex': 1}),

])
])



Expand Down Expand Up @@ -100,29 +101,21 @@ def drop4init(available_options):

#---------------------------------------------------------------------------------
@callback(
Output('pg3grid', 'children'),
Output('grid2', 'rowData'),
Input('Dados_notas', 'data'),
)


def Grid_maker(Notas_df):
grid = dag.AgGrid(
id='grid2',
rowData=Notas_df,
columnDefs=clndef,
defaultColDef=dfclndef,
dashGridOptions={'pagination': True},
)

return grid
def Grid_maker(data):
return data





@callback(
Output(component_id='scatter', component_property='figure'),
Output(component_id='textpg3', component_property='value'),
Output(component_id='textpg2', component_property='value'),
Input(component_id='grid2', component_property='virtualRowData'),
Input(component_id='dropdown20', component_property='value'),
Input(component_id='dropdown21', component_property='value'),
Expand All @@ -135,13 +128,16 @@ def Grid_maker(Notas_df):

def scatter_plot(rows, drop0, drop1, drop2, drop3, drop4):

# Evitando que o Output seja atualizado enquanto os Inputs ainda não estão presente no layout
if not rows:
raise PreventUpdate

## Criando o gráfico

# Modificando os dados conforme a filtragem do usuário
dff = pd.DataFrame(rows)



# Criando as opções nulas para os dropdowns 1 e 2
if drop1 == 'Nenhuma':
drop1 = None
Expand All @@ -154,18 +150,18 @@ def scatter_plot(rows, drop0, drop1, drop2, drop3, drop4):
drop2 = f'{drop2}'



fig = px.scatter(
dff, x=f'{drop0}', y='Med aluno',
dff, x=f'{drop0}', y='Média aluno',
color='Professor', facet_col=drop1, facet_row=drop2,
trendline=drop3, trendline_scope=drop4
)



# Valores de correlação

x = dff[drop0]
y = dff['Med aluno']
y = dff['Média aluno']

r = y.corr(x, method='pearson')
r2 = y.corr(x, method='spearman')
Expand Down
Loading

0 comments on commit d5ced1a

Please sign in to comment.