2013-04-14 10 views
5

Śledzę wzrok obiektu na określonym obszarze ekranu komputera. Tworzę mapy ciepła wzroku przy użyciu funkcji pyplota o nazwie hist2d.Jak ustawić obszary bez danych wykresu hist2d na kolor o wartości zero?

Oto prosty przykład:

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

enter image description here

Jak widać, istnieje znaczny obszar poza zakresem moich danych. Chciałbym jednak ustawić ten obszar na niebieski, wskazując wartość zerową.

Moja pierwsza próba przy użyciu imshow można zobaczyć tutaj:

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

Ten rodzaj robót, ale pozostawia brzydkie linię pionową na granicy zasięgu moich Danych.

moje pytania są następujące:

  1. Czy istnieje sposób, aby wypełnić rysunek z zerowej wartości błękitu unikając imshow połączenia
  2. Jeśli nie, w jaki sposób można ukryć pionową linię ?
+0

Biały obszar jest celowe, ponieważ brak danych jest zasadniczo zerowa, nie 0. Myślę, że najlepszym rozwiązaniem byłoby rozszerzenie dane, które są kreślenia. – sashkello

+0

@sashkello, tak, zdaję sobie sprawę, że biały obszar jest pusty, stąd moje pytanie. Nie rozumiem, jak mogłem rozszerzyć dane bez denaturowania. Moje pytanie * to *, "jak je rozszerzyć". – blz

+0

Jeśli chodzi o wizualizację, nie widzę sensu w kłopotach - wystarczy mieć tymczasowo zmodyfikowany zestaw danych do kreślenia. – sashkello

Odpowiedz

6

Okej, wymyśliłem to. W rzeczywistości jest to raczej proste: wystarczy tylko manipulować kwargiem range.

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