如何将hist2d图的无数据区域设置为零值颜色?

时间:2013-04-14 13:20:30

标签: python matplotlib histogram

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

这是一个简单的例子:

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

enter image description here

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

我可以在此处看到使用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])

enter image description here

这种方法有效,但在数据范围的边界留下了一条难看的垂直线。

我的问题如下:

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

1 个答案:

答案 0 :(得分:8)

好的,我已经明白了。它实际上相当简单:只需要​​操纵range kwarg。

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])

enter image description here