Data visualization scripts
parent
41846ce600
commit
28dc442dc5
|
@ -0,0 +1,56 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import dash
|
||||
import dash_core_components as dcc
|
||||
import dash_html_components as html
|
||||
import pandas as pd
|
||||
|
||||
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
|
||||
|
||||
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
|
||||
|
||||
students = pd.read_csv('../data/students.csv')
|
||||
|
||||
nb2015 = len(students[students.promotion.isin([2015])])
|
||||
nb2016 = len(students[students.promotion.isin([2016])])
|
||||
nb2017 = len(students[students.promotion.isin([2017])])
|
||||
nb2018 = len(students[students.promotion.isin([2018])])
|
||||
nb2019 = len(students[students.promotion.isin([2019])])
|
||||
nb2020 = len(students[students.promotion.isin([2020])])
|
||||
nb2021 = len(students[students.promotion.isin([2021])])
|
||||
|
||||
app.layout = html.Div(children=[
|
||||
html.H1(children='Hetic console'),
|
||||
|
||||
html.Div(children='''
|
||||
Agrégateur d'OSINT pour l'intranet d'HETIC, OGP et OGI compris.
|
||||
'''),
|
||||
|
||||
dcc.Graph(
|
||||
id='graph1',
|
||||
figure={
|
||||
'data': [
|
||||
{'x': ['P2015', 'P2016', 'P2017', 'P2018', 'P2019', 'P2020', 'P2021'], 'y': [nb2015, nb2016, nb2017, nb2018, nb2019, nb2020, nb2021], 'type': 'bar', 'name': 'Étudiants'},
|
||||
],
|
||||
'layout': {
|
||||
'title': 'Évolution du nombre d\'étudiants dans chaque promotions'
|
||||
}
|
||||
}
|
||||
),
|
||||
|
||||
dcc.Graph(
|
||||
id='graph2',
|
||||
figure={
|
||||
'data': [
|
||||
{'x': ['P2019', 'P2020', 'P2021'], 'y': [120, 110, 98], 'type': 'bar', 'name': 'WEB1'},
|
||||
{'x': ['P2019', 'P2020', 'P2021'], 'y': [80, 90, 88], 'type': 'bar', 'name': 'WEB2'},
|
||||
{'x': ['P2019', 'P2020', 'P2021'], 'y': [74, 86, 81], 'type': 'bar', 'name': 'WEB3'},
|
||||
],
|
||||
'layout': {
|
||||
'title': 'Évolution du nombre d\'étudiants dans chaque promotions par cursus'
|
||||
}
|
||||
}
|
||||
)
|
||||
])
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run_server(debug=False)
|
|
@ -0,0 +1,2 @@
|
|||
dash
|
||||
pandas
|
|
@ -0,0 +1,35 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import dash
|
||||
import dash_core_components as dcc
|
||||
import dash_html_components as html
|
||||
import pandas as pd
|
||||
|
||||
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
|
||||
|
||||
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
|
||||
|
||||
students = pd.read_csv('../data/students.csv')
|
||||
|
||||
def generate_table(dataframe, max_rows=300):
|
||||
return html.Table(
|
||||
# Header
|
||||
[html.Tr([html.Th(col) for col in dataframe.columns])] +
|
||||
|
||||
# Body
|
||||
[html.Tr([
|
||||
html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
|
||||
]) for i in range(min(len(dataframe), max_rows))]
|
||||
)
|
||||
|
||||
app.layout = html.Div(children=[
|
||||
html.H1(children='Hetic console'),
|
||||
|
||||
html.Div(children='''
|
||||
Agrégateur d'OSINT pour l'intranet d'HETIC, OGP et OGI compris.
|
||||
'''),
|
||||
|
||||
generate_table(students)
|
||||
])
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run_server(debug=False)
|
Loading…
Reference in New Issue