2013-04-14 25 views
5

我正在跟蹤主題在計算機屏幕指定區域的注視。我正在使用pyplot的hist2d函數構建凝視熱圖。如何將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. 如果不同時,我怎麼能隱藏垂直線?
+0

白色區域是故意的。 – sashkello

+0

@sashkello,是的,我意識到白色區域爲空,因此我的問題。我看不出如何在不改變數據的情況下擴展數據。我的問題*是*,「我如何擴展它」。 – blz

+0

如果這是一個可視化問題,我看不出有什麼意義,只需要爲繪圖臨時修改數據集即可。 – sashkello

回答

6

好的,我已經想通了。它實際上很簡單:只需要​​操縱kwarg。因爲沒有數據基本上是零,不爲0。我認爲最好的解決辦法是擴展你繪製數據

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

相關問題