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

blz*_*blz 8 python matplotlib histogram

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

这是一个简单的例子:

figure()
hist2d(xval, yval, bins=1000)
xlim([-6, 6])
ylim([-4.5, 4.5])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

我的第一次尝试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])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这种工作,但在我的数据范围的边界留下了一条丑陋的垂直线.

我的问题如下:

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

blz*_*blz 8

好的,我已经明白了.它实际上相当简单:只需要​​操纵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])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述