python和pandas相对较新。我有一个数据框:df
,例如2列(比如,0
和1
)和n行。我想绘制两列中表示的两个时间序列数据的直方图。我还需要访问每个bin的直方图中的确切计数,以便以后进行操作。
b_counts, b_bins = np.histogram(df[0], bins = 10)
a_counts, a_bins = np.histogram(df[1], bins = 10)
plt.bar(b_bins, b_counts)
plt.pbar(a_bins, a_counts)
但是我遇到了不兼容大小的错误,即bin数组的长度为11,而count数组的长度为10.两个问题: 1)为什么直方图在numpy中是一个额外的bin?即11个而不是10个箱 2)假设上面的问题1)可以解决,这是最好/最简单的解决方法吗?
答案 0 :(得分:2)
我会直接使用内置histogram函数的Pyplot:
b_counts, b_bins, _ = plt.hist(df[0], bins = 10)
a_counts, a_bins, _ = plt.hist(df[1], bins = 10)
根据numpy.histogram的文档(如果向下滚动到足以阅读参数定义中的Returns
部分):
hist : array 直方图的值。查看密度和重量 可能的语义描述。
bin_edges : dtype数组 float 返回bin边
(length(hist)+1)
。
很清楚,不是吗?