1

我正在努力使轴正确:

我有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()

直方图2d

4

2 回答 2

4

我认为问题是双重的:

首先,您的直方图中应该有 5 个 bin(默认设置为 10):

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

其次,要设置轴值,您可以根据手册页extent使用参数:histogram2d

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

在此处输入图像描述

于 2014-05-14T21:09:11.917 回答
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')

在此处输入图像描述

这看起来对吗?

于 2014-05-14T19:43:06.793 回答