Histogramme Python — Les-mathematiques.net The most powerful custom community solution in the world

Histogramme Python

Bonjour,
je souhaiterais obtenir sur Python un histogramme, où les classes n'ont pas la même amplitude.
Par exemple en regroupant les communes entre 80 000 et 120 000 habitants sur mon exemple, mais le résultat obtenu n'est pas celui souhaité.
import matplotlib.pyplot as plt
import xlrd

wb= xlrd.open_workbook('hds_essonne_histo.xlsx')
sh=wb.sheet_by_name('Feuil1')

col1=sh.col_values(0)
bins=[0,20000,40000,60000,80000,120000]
print(col1)
plt.hist(col1,bins,edgecolor="black")
plt.axis([0,125000,0,13])
plt.yticks(range(13))
plt.xlabel("Nombre d'habitants")
plt.ylabel("Effectif")
plt.show()

Pourriez-vous m'aider ?

Réponses

  • Bonjour,

    La surcouche seaborn de Matplotlib peut probablement t'aider. Voici un exemple avec des classes d'amplitudes différentes :
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    sns.set_palette("deep", desat=.6)
    sns.set_context(rc={"figure.figsize": (8, 4)})
    np.random.seed(9221999)
    
    data = [0,2,30,40,50,10,50,40,150,70,150,10,3,70,70,90,10,2] 
    bins = [0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200]
    plt.hist(data, bins=bins);
    

    Playlist Youtube de Misterned :
    Exercices Python72518
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!