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()
|