10

我正在跟踪对象对计算机屏幕指定区域的注视。我正在使用 pyplot 的hist2d函数构建凝视热图。

这是一个简单的例子:

figure()
hist2d(xval, yval, bins=1000)
xlim([-6, 6])
ylim([-4.5, 4.5])

在此处输入图像描述

如您所见,我的数据范围之外有一个重要区域。但是,我想将此区域设置为表示零值的蓝色。

我第一次尝试使用imshow可以在这里看到:

figure()
imshow(np.array([[0] * 8] * 12), extent=[-6, 6, -4.5, 4.5])
hist2d(xval, yval, bins=1000)
xlim([-6, 6])
ylim([-4.5, 4.5])

在此处输入图像描述

这种工作,但在我的数据范围的边界留下一条难看的垂直线。

我的问题如下:

  1. 有没有办法在避免imshow调用的同时用零值蓝色填充图形
  2. 如果没有,我该如何隐藏垂直线?
4

1 回答 1

14

好的,我已经想通了。它实际上相当简单:只需要​​操纵rangekwarg。

figure()
#imshow(np.array([[0] * 8] * 12), extent=[-6, 6, -4.5, 4.5])
hist2d(xval, yval, bins=1000, range=np.array([(-6, 6), (-4.5, 4.5)]))
xlim([-6, 6])
ylim([-4.5, 4.5])

在此处输入图像描述

于 2013-04-14T13:34:41.590 回答