Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -867,16 +867,22 @@ def create_repartition(array_value, selectedData, theme):
|
|
867 |
|
868 |
######## Filtre Emplois ########
|
869 |
options = []
|
|
|
|
|
870 |
if selectedData != None:
|
871 |
customEmplois = selectedData['points'][0]['y'][:-3]
|
872 |
if type(selectedData['points'][0]['y']) == str:
|
873 |
options.append(selectedData['points'][0]['y'][:-3])
|
|
|
874 |
else:
|
875 |
options = selectedData['points'][0]['y'][:-3]
|
|
|
876 |
else:
|
877 |
customEmplois = " "
|
878 |
options = df['intitule'].values.tolist()
|
|
|
879 |
df = df[df['intitule'].isin(options)]
|
|
|
880 |
|
881 |
######## localisation ########
|
882 |
ListCentroids = localisation()
|
@@ -911,7 +917,7 @@ def create_repartition(array_value, selectedData, theme):
|
|
911 |
text='La répartition géographique des emplois<br><b>{}</b>'.format(customEmplois),font=dict(color="black",size=14))
|
912 |
|
913 |
######## Compétences professionnelles ########
|
914 |
-
df_FT.dropna(subset=['qualitesProfessionnelles','formations','competences'], inplace=True)
|
915 |
df_FT["competences"] = df_FT["competences"].apply(lambda x:[str(e['libelle']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
916 |
df_FT["qualitesProfessionnelles"] = df_FT["qualitesProfessionnelles"].apply(lambda x:[str(e['libelle']) + ": " + str(e['description']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
917 |
|
@@ -921,7 +927,9 @@ def create_repartition(array_value, selectedData, theme):
|
|
921 |
df_comp = df_comp.groupby('competences').size().reset_index(name='obs')
|
922 |
df_comp = df_comp.sort_values(by=['obs'])
|
923 |
df_comp = df_comp.iloc[-25:]
|
924 |
-
fig_competences = px.bar(df_comp, x='obs', y='competences', orientation='h', color='obs', height=600, template=template,
|
|
|
|
|
925 |
|
926 |
######## Compétences transversales ########
|
927 |
df_transversales = df_FT
|
@@ -930,19 +938,25 @@ def create_repartition(array_value, selectedData, theme):
|
|
930 |
df_comptransversales = df_comptransversales.groupby('qualitesProfessionnelles').size().reset_index(name='obs')
|
931 |
df_comptransversales = df_comptransversales.sort_values(by=['obs'])
|
932 |
df_comptransversales = df_comptransversales.iloc[-25:]
|
933 |
-
fig_transversales = px.bar(df_comptransversales, x='obs', y='qualitesProfessionnelles', orientation='h', color='obs', height=600, template=template,
|
|
|
|
|
934 |
|
935 |
######## Niveaux de qualification ########
|
936 |
df_niveau = df_FT
|
937 |
df_niveau["formations"] = df_niveau["formations"].apply(lambda x:[str(e['niveauLibelle']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
938 |
df_niveau = df_niveau.groupby('formations').size().reset_index(name='obs')
|
939 |
-
fig_niveau = px.pie(df_niveau, names='formations', height=600, values='obs', color='obs', template=template,
|
|
|
|
|
940 |
|
941 |
######## Secteurs ########
|
942 |
df_secteur = df.groupby('secteurActiviteLibelle').size().reset_index(name='obs')
|
943 |
df_secteur = df_secteur.sort_values(by=['obs'])
|
944 |
df_secteur = df_secteur.iloc[-25:]
|
945 |
-
fig_secteur = px.bar(df_secteur, x='obs', y='secteurActiviteLibelle', height=600, orientation='h', color='obs', template=template,
|
|
|
|
|
946 |
|
947 |
|
948 |
return fig_localisation, fig_competences, fig_transversales, fig_niveau, fig_secteur
|
|
|
867 |
|
868 |
######## Filtre Emplois ########
|
869 |
options = []
|
870 |
+
options_FT = []
|
871 |
+
df_FT.dropna(subset=['intitule', 'qualitesProfessionnelles','formations','competences'], inplace=True)
|
872 |
if selectedData != None:
|
873 |
customEmplois = selectedData['points'][0]['y'][:-3]
|
874 |
if type(selectedData['points'][0]['y']) == str:
|
875 |
options.append(selectedData['points'][0]['y'][:-3])
|
876 |
+
options_FT.append(selectedData['points'][0]['y'][:-3])
|
877 |
else:
|
878 |
options = selectedData['points'][0]['y'][:-3]
|
879 |
+
options_FT = selectedData['points'][0]['y'][:-3]
|
880 |
else:
|
881 |
customEmplois = " "
|
882 |
options = df['intitule'].values.tolist()
|
883 |
+
options_FT = df_FT['intitule'].values.tolist()
|
884 |
df = df[df['intitule'].isin(options)]
|
885 |
+
df_FT = df_FT[df_FT['intitule'].isin(options_FT)]
|
886 |
|
887 |
######## localisation ########
|
888 |
ListCentroids = localisation()
|
|
|
917 |
text='La répartition géographique des emplois<br><b>{}</b>'.format(customEmplois),font=dict(color="black",size=14))
|
918 |
|
919 |
######## Compétences professionnelles ########
|
920 |
+
#df_FT.dropna(subset=['intitule', 'qualitesProfessionnelles','formations','competences'], inplace=True)
|
921 |
df_FT["competences"] = df_FT["competences"].apply(lambda x:[str(e['libelle']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
922 |
df_FT["qualitesProfessionnelles"] = df_FT["qualitesProfessionnelles"].apply(lambda x:[str(e['libelle']) + ": " + str(e['description']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
923 |
|
|
|
927 |
df_comp = df_comp.groupby('competences').size().reset_index(name='obs')
|
928 |
df_comp = df_comp.sort_values(by=['obs'])
|
929 |
df_comp = df_comp.iloc[-25:]
|
930 |
+
fig_competences = px.bar(df_comp, x='obs', y='competences', orientation='h', color='obs', height=600, template=template, labels={'obs':'nombre'}, color_continuous_scale="Teal", text_auto=True).update_layout(font=dict(size=10),paper_bgcolor=paper_bgcolor,plot_bgcolor=plot_bgcolor,clickmode='event+select',autosize=True).update_traces(hovertemplate=df_comp["competences"] + ' <br>Nombre : %{x}', y=[y[:100] + "..." for y in df_comp['competences']], showlegend=False).add_annotation(x=0, y=1.0, xanchor='left', yanchor='bottom',
|
931 |
+
xref='paper', yref='paper', showarrow=False, align='left',
|
932 |
+
text='Les principales compétences professionnelles<br><b>{}</b>'.format(customEmplois),font=dict(size=14))
|
933 |
|
934 |
######## Compétences transversales ########
|
935 |
df_transversales = df_FT
|
|
|
938 |
df_comptransversales = df_comptransversales.groupby('qualitesProfessionnelles').size().reset_index(name='obs')
|
939 |
df_comptransversales = df_comptransversales.sort_values(by=['obs'])
|
940 |
df_comptransversales = df_comptransversales.iloc[-25:]
|
941 |
+
fig_transversales = px.bar(df_comptransversales, x='obs', y='qualitesProfessionnelles', orientation='h', color='obs', height=600, template=template, labels={'obs':'nombre'}, color_continuous_scale="Teal", text_auto=True).update_layout(font=dict(size=10),paper_bgcolor=paper_bgcolor,plot_bgcolor=plot_bgcolor,autosize=True).update_traces(hovertemplate=df_comptransversales["qualitesProfessionnelles"] + ' <br>Nombre : %{x}', y=[y[:80] + "..." for y in df_comptransversales["qualitesProfessionnelles"]], showlegend=False).add_annotation(x=0, y=1.0, xanchor='left', yanchor='bottom',
|
942 |
+
xref='paper', yref='paper', showarrow=False, align='left',
|
943 |
+
text='Les principales compétences transversales<br><b>{}</b>'.format(customEmplois),font=dict(size=14))
|
944 |
|
945 |
######## Niveaux de qualification ########
|
946 |
df_niveau = df_FT
|
947 |
df_niveau["formations"] = df_niveau["formations"].apply(lambda x:[str(e['niveauLibelle']) for e in x]).apply(lambda x:'; '.join(map(str, x)))
|
948 |
df_niveau = df_niveau.groupby('formations').size().reset_index(name='obs')
|
949 |
+
fig_niveau = px.pie(df_niveau, names='formations', height=600, values='obs', color='obs', template=template, labels={'obs':'nombre'}, color_discrete_sequence=px.colors.qualitative.Safe).update_traces(textposition='inside', textinfo='percent+label').update_layout(font=dict(size=10),paper_bgcolor=paper_bgcolor).add_annotation(x=0, y=1.0, xanchor='left', yanchor='bottom',
|
950 |
+
xref='paper', yref='paper', showarrow=False, align='left',
|
951 |
+
text='Les niveaux de qualification<br><b>{}</b>'.format(customEmplois),font=dict(size=14))
|
952 |
|
953 |
######## Secteurs ########
|
954 |
df_secteur = df.groupby('secteurActiviteLibelle').size().reset_index(name='obs')
|
955 |
df_secteur = df_secteur.sort_values(by=['obs'])
|
956 |
df_secteur = df_secteur.iloc[-25:]
|
957 |
+
fig_secteur = px.bar(df_secteur, x='obs', y='secteurActiviteLibelle', height=600, orientation='h', color='obs', template=template, labels={'obs':'nombre'}, color_continuous_scale="Teal", text_auto=True).update_layout(font=dict(size=10),paper_bgcolor=paper_bgcolor,plot_bgcolor=plot_bgcolor,autosize=True).update_traces(hovertemplate=df_secteur["secteurActiviteLibelle"] + ' <br>Nombre : %{x}', y=[y[:80] + "..." for y in df_secteur["secteurActiviteLibelle"]], showlegend=False).add_annotation(x=0, y=1.0, xanchor='left', yanchor='bottom',
|
958 |
+
xref='paper', yref='paper', showarrow=False, align='left',
|
959 |
+
text='Les principaux secteurs d'activités<br><b>{}</b>'.format(customEmplois),font=dict(size=14))
|
960 |
|
961 |
|
962 |
return fig_localisation, fig_competences, fig_transversales, fig_niveau, fig_secteur
|