File size: 2,295 Bytes
9157013
 
 
 
80f2f60
9157013
80f2f60
9157013
 
2348b43
4034b79
9157013
 
 
255d900
 
9157013
 
 
2348b43
9157013
 
 
 
 
 
 
80f2f60
 
 
 
 
 
 
 
 
 
 
 
9157013
 
 
 
 
 
2348b43
9157013
2348b43
9157013
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# statistiques.py
import streamlit as st
import pandas as pd
import plotly.express as px
import matplotlib.pyplot as plt
from data_manager import get_data
from wordcloud import WordCloud

def display_companies_by_sector(df):
    # Assurez-vous d'utiliser le nom correct de la colonne ici
    sector_counts = df['libelle_section_naf'].value_counts().reset_index()
    sector_counts.columns = ['Secteur', 'Nombre']
    fig = px.bar(sector_counts, x='Secteur', y='Nombre', title="Répartition des entreprises par secteur d'activité",
                 color='Nombre', labels={'Nombre':'Nombre d\'entreprises'}, template='plotly_white')
    # Rotation des étiquettes de l'axe des x pour une meilleure lisibilité
    fig.update_layout(xaxis_tickangle=-45)
    st.plotly_chart(fig)

def display_company_sizes(df):
    # Remplacez 'tranche_effectif_entreprise' par le nom correct de la colonne
    fig = px.histogram(df, x='tranche_effectif_entreprise', title="Distribution des tailles d'entreprises",
                       labels={'tranche_effectif_entreprise':'Taille de l\'entreprise'}, template='plotly_white')
    fig.update_traces(marker_color='green')
    st.plotly_chart(fig)

def display_rse_actions_wordcloud(df):
    st.title("Cartographie des Actions RSE")
    
    # Préparation des données : concaténation des entrées de la colonne 'action_rse' en une seule chaîne de texte
    text = " ".join(action for action in df['action_rse'].dropna())
    
    # Génération du nuage de mots
    wordcloud = WordCloud(width = 800, height = 400, background_color ='white').generate(text)
    
    # Affichage du nuage de mots
    fig, ax = plt.subplots()
    ax.imshow(wordcloud, interpolation='bilinear')
    ax.axis('off')  # Enlève les axes pour un affichage plus propre
    st.pyplot(fig)

def main():
    st.title("Statistiques sur les entreprises engagées RSE")
    data, _ = get_data()
    df = pd.DataFrame(data)
    
    # Affiche les noms des colonnes du DataFrame
    if not df.empty:
        st.write("Colonnes du DataFrame:", df.columns.tolist())
        display_companies_by_sector(df)
        display_company_sizes(df)
        display_rse_actions_wordcloud(df)
    else:
        st.write("Aucune donnée à afficher pour le moment.")

if __name__ == "__main__":
    main()