2013-04-14 6 views
5

Sto monitorando lo sguardo di un soggetto su un'area specifica dello schermo di un computer. Sto costruendo le heatmap dello sguardo usando la funzione hist2d di pyplot.Come posso impostare le aree senza dati di un grafico di hist2d sul colore a valore zero?

Ecco un semplice esempio:

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

enter image description here

Come si può vedere, c'è una significativa area di fuori del campo dei miei dati. Tuttavia, vorrei impostare quest'area sull'indicativo blu di un valore zero.

Il mio primo tentativo utilizzando imshow può essere visto qui:

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

Questo tipo di opere, ma lascia una linea verticale brutto al confine della gamma dei miei dati.

Le mie domande sono le seguenti:

  1. C'è un modo per riempire la figura con l'azzurro zero valore, evitando la imshow chiamata
  2. Se no, come posso nascondere la linea verticale ?
+0

zona bianca è intenzionale, perché non ci sono dati è essenzialmente nullo, non 0. Credo che la soluzione migliore sarebbe quella di estendere i dati che si sta tramando. – sashkello

+0

@sashkello, sì, mi rendo conto che l'area bianca è nullo, da qui la mia domanda. Non vedo come potrei estendere i dati senza denigrarli. La mia domanda * è *, "come posso estenderla". – blz

+0

Se si tratta di visualizzazione, non vedo il punto di mettermi nei guai: basta avere un set di dati modificato temporaneo per la stampa. – sashkello

risposta

6

Ok, l'ho capito. In realtà è piuttosto semplice: basta manipolare il kwarg 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

Problemi correlati