我有一个一维数字数组,需要在Python3中从中绘制直方图。我也可以使用bin边界:
bins = [1,2,3,4,5]
plt.hist(data, bins=bins, histtype='step')
现在,如果我想将直方图在x轴上水平移动1个单位,该如何实现?我不希望形状或容器边界发生变化,我只希望整个直方图在x轴上移动。如果直方图可以表示为f(x),那么我正在寻找f(x-x0)。
答案 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')
您可以通过将x0
加到您的data
中来进行移动,并通过修改bins
以允许这些更改来。因此,例如,将其移动一个单位
x0 = 1
plt.hist(data+x0, bins=np.arange(1, 6 + x0), histtype='step')
要移动两个,
x0 = 2
答案 1 :(得分:0)
您可以在进行直方图绘制之前将x0
添加或减去data
。
答案 2 :(得分:0)
查看matplotlib官方文档:
xlocs,xlabs = plt.xticks() 在xlocs中放置您的范围,在xlabs中放置您要显示的内容。
然后:
plt.xticks(xlocs,xlabs)