Bonjour

Je viens vers vous car j'ai trois soucis sur la mise en format de mon histogramme :
  • les barres ne sont pas centrées autour des valeurs pourtant je croyais que l'ajout de le permettait
  • si une valeur n'est pas dans ma liste de départ, elle n'apparaît pas comme étiquette sur l'axe des x
  • mes données peuvent être des valeurs inférieures à 1 (typiquement varié de 0.01 à 0.02 tous les 0.001) mais quand je veux l'intégrer à je reçois un message d'erreur 'float' object cannot be interpreted as an integer, que je comprends bien mais dont je ne sais pas comment faire pour le résoudre.


Mon exemple de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
import numpy as np
import matplotlib.pyplot as plt
import statistics
tau = np.array([1, 2, 2, 4, 4, 4, 4, 4, 5, 5])
 
n, bins, patches = plt.hist(tau, bins='auto', color='#0504aa',\
                            alpha=0.75, align="mid", rwidth=0.5, edgecolor="black")
 
# Calcul statistique sur la liste
moyenne=np.mean(tau)
ecarttype=np.std(tau, ddof=1)  #ddof=1 permet l'ecart type statistique (et non
                            #mathématique) en divisant par (n-1) au lieu de (n)
incertitude=ecarttype/sqrt(len(tau))
maxfreq = n.max()
 
xmin ,xmax = tau.min(), tau.max()
ymax=np.ceil(maxfreq/5) *5 if maxfreq % 5 else maxfreq + 5
dx = (xmax - xmin)*0.1
plt.xlim(xmin - dx, xmax + dx)
plt.ylim(ymax=np.ceil(maxfreq/5) *5 if maxfreq % 5 else maxfreq + 5)
plt.xticks(range(tau.min(), tau.max(), 1))
 
plt.xlabel(r"Valeur de $\tau$")
plt.ylabel("Fréquence")
 
plt.text(moyenne,0.9*ymax,r"$\overline{{\tau}} = {:.3e} s $".format(moyenne))
plt.text(moyenne,0.85*ymax,r"$u({{\tau}}) = {:.4e} s $".format(incertitude))
plt.title(r"Répartition des valeurs de $\tau$ mesurées")
plt.xticks(tau)
plt.savefig("charge_condensateur_mesuretau.png")
plt.show()
Merci d'avance pour l'aide