File size: 2,314 Bytes
0701931
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

def repartition_par_categorie(st,data):
    val_code = data['prdtypecode'].unique()

    target_count = (data["prdtypecode"].value_counts(normalize=True)*100).reset_index()
    target_count.columns=["prdtypecode","pourcentage"]

    plt.figure(figsize=(10,3))
    ax = sns.barplot( x="prdtypecode", y="pourcentage", data=target_count)

    ax.axhline(y=100/len(val_code),color="green",linewidth=2, alpha=0.5)

    plt.xticks(rotation=45)
    plt.xlabel('Code produit')
    plt.ylabel('Pourcentage')
    plt.grid()
    plt.title("Distribution des valeurs de la target")

    # Afficher le graphique avec Streamlit
    col1, col2,col3 = st.columns([6,1,3])
    with col1:
        st.pyplot(plt)

    with col3:
        st.markdown('<div class="rounded-border"></div>', unsafe_allow_html=True)
        st.write("\n\n\n\n\n\n")
        st.write("La catégorie la plus présente représente 12% du corpus.")
        st.write("Si la base était uniformément répartie:")
        st.write(f"=> chaque code serait représenté à {100/len(val_code):.2f}% de la base")


def repartition_longueur_categorie(st,data):
    data["designation_length"] = data["designation"].str.len()
    data["description_length"] = data["description"].str.len()
    
    plt.figure(figsize=(10,4))
    ax = sns.histplot(x='designation_length', data=data,bins=50);
    ax.axhline(data["designation_length"].mean(),color="r",linewidth=2, alpha=0.5)
    
    plt.xticks(rotation=45)
    plt.xlabel("Longueur de la designation en caractères");
    plt.ylabel("nb d'occurences");
    plt.grid()
    plt.title("Répartition des longueurs des designations");
    
    col1, col2,col3 = st.columns([2,6,3])
    with col1:
        st.write(data["designation_length"].describe())
        
    with col2:
        st.pyplot(plt)

    with col3:        
        st.text('')
        st.text('')
        st.text('')
        st.text('')
        st.text('')
        st.text('')
        st.write(f'=> Longueur de la designation est comprise entre {data["designation_length"].min()} et {data["designation_length"].max()} caractères')
        st.write("on a une majeure partie de la distribution entre 45 et 100 caractères, puis un pic à 250 caractères")