我有一个带有小浮点数的数组,这里是一个豁免:[-0.000631510156545283, 0.0005999252334386763, 2.6784775066479167e-05, -6.171351407584846e-05, -2.0256783283654057e-05, -5.700196588437318e-05, 0.0006830172130385885, -7.862102776837944e-06, 0.0008167604859504389, 0.0004497656945683915, -0.00017132944173890756, -0.00013510823579343265, 0.00019666267095029728, -9.0271602657355e-06, 0.0005219852103996746, 4.010928726736523e-05, -0.0005287787999295592, 0.00023883106926381664, 0.0006348661301799839, 0.0003881285984411852](编辑:整个数组包含 ~40k 浮点数)数字显示测量值随时间的变化,例如 +0.0001 表示测量值增加 0.0001。我想在整个数组上绘制直方图。目前,pyplot.hist创建一个将所有值插入一个箱中的图(此图像显示当前直方图。,使用以下代码创建(已编辑):import matplotlib.pyplot as pltfig, axs = plt.subplots(1, 1, figsize=(20,20))array = [] # floats hereaxs.hist(array,bins=10)axs.set_ylabel("Histogram of temperature/weight ratio")axs.set_xlabel("Bins")). 我猜这是因为人数太少了——我就在这里吗?我尝试使用hist, bins = numpy.histogram()并绘制它,结果相同。(在此处关注此问题)。我如何在如此小的数字上创建直方图,以便将值分布在例如 100 个箱子上,而不是全部插入第一个箱子?我需要预处理我的数据吗?
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
对于其他寻找答案的人:
正如 Jody Klymak 在对我的问题的评论中所建议的那样,手动指定垃圾箱。我不需要进一步预处理数据,因为我认为我必须这样做。
例子:
import matplotlib.pyplot as plt
import bumpy as np
array = [...] # large array with tiny floats
fig, axs = plt.subplots(1, 1, figsize=(20,20))
hist = axs.hist(array, np.arange(-0.01, 0.01, 0.0001)) #numpy to create bins over range
plt.show()
添加回答
举报
0/150
提交
取消
