Matplotlib和numpy histogram2d轴问题

时间:2014-05-14 19:38:15

标签: numpy matplotlib histogram2d

我努力让轴正确:

我已获得xy值,并希望在二维直方图中绘制它们(以检查相关性)。为什么我会在每个轴上得到一个限制范围为0-9的直方图?如何让它显示实际值范围?

这是一个很小的例子,我希望看到红色的"明星"在(3, 3)

import numpy as np
import matplotlib.pyplot as plt

x = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3)
y = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3)
xedges = range(5)
yedges = range(5)
H, xedges, yedges = np.histogram2d(y, x)
im = plt.imshow(H, origin='low')
plt.show()

histogram2d

2 个答案:

答案 0 :(得分:3)

我认为这个问题是双重的:

首先你的直方图应该有5个分区(默认设置为10):

H, xedges, yedges = np.histogram2d(y, x,bins=5)

其次,要设置轴值,您可以按照the histogram2d man pages使用extent参数:

im = plt.imshow(H, interpolation=None, origin='low',
                extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])

enter image description here

答案 1 :(得分:1)

如果我理解正确,您只需要设置interpolation='none'

import numpy as np
import matplotlib.pyplot as plt

x = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3)
y = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3)
xedges = range(5)
yedges = range(5)
H, xedges, yedges = np.histogram2d(y, x)
im = plt.imshow(H, origin='low', interpolation='none')

enter image description here

看起来不错吗?