2015-10-12 12 views
5

Pracuję na mapie termicznej dla niektórych danych śledzenia oka. Wymyśliłem, jak zrobić mapę cieplną i jest to bardzo atrakcyjne. Jest to kod:Mapa termiczna reprezentująca liczbę utrwalaczy

ggplot(eyematrixCorrectMatchControl, aes(x = CURRENT_FIX_X, y =CURRENT_FIX_Y)) + 
annotation_raster(image, -Inf, Inf, -Inf, Inf, interpolate = TRUE) + 
stat_density2d(data= eyematrixCorrectMatchControl, aes(x = CURRENT_FIX_X, y =CURRENT_FIX_Y, fill = ..level.., alpha = ..level..), size= 10, bins= 50, geom='polygon') + 
theme_bw() +scale_fill_gradient(low = "blue", high = "red") + 
scale_alpha_continuous(range=c(0.01,0.25) , guide = FALSE) + 
coord_cartesian(xlim= c(0,1024), ylim= c(0,768))+ 
scale_y_reverse() + 
theme(axis.line=element_blank(), 
     axis.text.x=element_blank(), 
     axis.text.y=element_blank(), 
     axis.ticks=element_blank(), 
     axis.title.x=element_blank(), 
     axis.title.y=element_blank()) 

Z tym kodem, mogę uzyskać ten obraz: enter image description here

Jednak nie rozumiem pewnych rzeczy. Pomyślałem, że ten kod da mi wykres liczby fiksacji w określonym obszarze (im więcej utrwalenia tym bardziej czerwony obszar). Jednak patrząc na legendę nie jestem pewien, co pokazuje ten wykres. Jak mogę uzyskać wykres pokazujący liczbę fiksacji? Chciałbym również, aby legenda odzwierciedlała liczbę fiksacji, więc im bardziej czerwone, tym więcej fiksacji. Dowolny pomysł??

Edytuję, aby dodać dodatkowe informacje, które mogą być przydatne. W mojej oryginalnej ramce danych mam również zmienną o nazwie fixation_index. Myślę, że muszę umieścić tę zmienną gdzieś, ale nie jestem tego pewien.

Dzięki!

+1

Gęstość sumuje się do jednego, tj. Legenda odnosi się do części utrwaleń zamiast do liczby. – Axeman

+0

Dzięki za komentarz. Masz pomysł, jak to zmienić? – unomas83

+0

Być może zamiast tego 'fill = ..level..' możesz użyć' fill = ..level .. * [całkowita liczba fiksacji] ' – Axeman

Odpowiedz

0

Heatmap.2 oferuje opcję histogramu, która koreluje kolor z liczbą gęstości. Wygląda jak this.

+0

dzięki za odpowiedź! Czy możesz podać przykład kodu? – unomas83

+0

@ unomas83:

heatmap.2 (yourmatrixhere, xlab = "tutaj wybierz swoją etykietę", col = brewer.pal (9, "Pomarańcze"), trace = "none", marginesy = c (4, 10), main = "Tytuł na górze tutaj", klucz = TRUE)
datadan