2017-10-10 3 views
0

Vous avez tenté de générer l'histogramme avec la méthode sqrt pour les tailles de casiers. Qu'est-ce que je fais mal? Mon code est ci-dessous me donne une erreur. Je vous remercie.Histogramme en python en choisissant des tailles de casier avec la méthode sqrt

TypeError: 'float' object cannot be interpreted as an integer

values = [1,5,2,8,5,11,24,30,50] 
x = len(values) 
binsizes = math.sqrt(x) 
plt.hist(values, bins = binsizes) 
plt.show() 
+1

Y at-il une erreur particulière? Pour une ligne particulière? –

Répondre

1

math.sqrt(x) retourne un flotteur. L'argument bins attend un nombre entier. Vous devez jeter binsizes int à un moment donné:

values = [1,5,2,8,5,11,24,30,50] 
x = len(values) 
binsizes = math.sqrt(x) 
plt.hist(values, bins = int(binsizes)) 
plt.show() 
1

Ici, vous devez faire votre math.sqrt à int, si elle ne fait int vous toujours recevoir une erreur

n = np.zeros(bins, ntype) TypeError: 'float' object cannot be interpreted as an integer In your code binsizes is float type and hence need to be converted to int

import math 
import numpy as np 
import matplotlib.pyplot as plt 
values = [1,5,2,8,5,11,24,30,50] 
x = len(values) 
print(x) 
binsizes = int(math.sqrt(x)) 
plt.hist(values, bins = binsizes) 
plt.show()