如何在Python中水平移动直方图?

时间:2018-09-03 20:34:31

标签: python python-3.x

我有一个一维数字数组,需要在Python3中从中绘制直方图。我也可以使用bin边界:

bins = [1,2,3,4,5]
plt.hist(data, bins=bins, histtype='step')

现在,如果我想将直方图在x轴上水平移动1个单位,该如何实现?我不希望形状或容器边界发生变化,我只希望整个直方图在x轴上移动。如果直方图可以表示为f(x),那么我正在寻找f(x-x0)。

3 个答案:

答案 0 :(得分:1)

IIUC,假设您有

bins = np.arange(1, 6)
data = np.array([1,2,3,4,4,4,3,2,3,3,3])
plt.hist(data, bins=bins, histtype='step')

enter image description here

您可以通过将x0加到您的data 中来进行移动,并通过修改bins以允许这些更改来。因此,例如,将其移动一个单位

x0 = 1
plt.hist(data+x0, bins=np.arange(1, 6 + x0), histtype='step')

enter image description here

要移动两个,

x0 = 2

enter image description here

答案 1 :(得分:0)

您可以在进行直方图绘制之前将x0添加或减去data

答案 2 :(得分:0)

查看matplotlib官方文档:

xlocs,xlabs = plt.xticks() 在xlocs中放置您的范围,在xlabs中放置您要显示的内容。

然后:

plt.xticks(xlocs,xlabs)