尝试使用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()
答案 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()