【发布时间】:2014-06-08 09:27:25
【问题描述】:
我有一个 numpy 数组 results,看起来像
[ 0. 2. 0. 0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 2. 0. 0.
0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.
0. 1. 1. 0. 0. 0. 0. 2. 0. 3. 1. 0. 0. 2. 2. 0. 0. 0.
0. 0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 2. 0. 0. 0. 0.
0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 1. 0. 0. 0. 0. 0.
0. 0. 0. 1. 0. 0. 0. 1. 2. 2.]
我想绘制它的直方图。我试过了
import matplotlib.pyplot as plt
plt.hist(results, bins=range(5))
plt.show()
这给了我一个 x 轴标记为0.0 0.5 1.0 1.5 2.0 2.5 3.0. 3.5 4.0 的直方图。
我希望将 x 轴标记为 0 1 2 3,而不是将标签放在每个条的中心。你怎么能这样做?
【问题讨论】:
-
我不确定你想要什么。您是否希望 bin 以 1、2、3 为中心(所以围绕整数而不是 1.5、2.5 值)。或者你想用文本或其他东西标记条吗?因为如果我执行你的命令,我的输出是
(array([ 4., 5., 1., 2.]), array([0, 1, 2, 3, 4])(具有不同的输入值)。所以我有不同的垃圾箱,还是我错过了什么? -
@Mathias711 第一条是
results中0的个数,第二个是1的个数(有11个),第三个是2的个数(有8个)最后一个是3的个数(一共有三个)。我想将数字0作为第一条中间下方的标签,将数字1作为第二条中间下方的标签,依此类推。是不是更清楚了? -
那么分箱没有问题,您只是想给分箱添加标签吗?
-
@Mathias711 是的,我想摆脱默认标签并添加我描述的标签。
标签: python numpy matplotlib histogram