python中的直方图用sqrt方法选择bin大小

时间:2017-10-10 21:24:27

标签: python histogram

尝试使用sqrt方法生成bin大小的直方图。我究竟做错了什么?我的代码在下面给了我错误。谢谢。

  

TypeError:'float'对象不能解释为整数

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

2 个答案:

答案 0 :(得分:1)

math.sqrt(x)返回一个浮点数。垃圾箱arg期待一个整数。你需要在某些时候将binsizes转换为int:

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 :(得分:1)

在这里,您需要将 math.sqrt设为int ,如果未将其设为int,则始终会收到错误

  

n = np.zeros(bins,ntype)TypeError:'float'对象不能   解释为整数   在您的代码中,binsizes是float类型,因此需要转换为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()