2011-11-17 21 views
6

Potrzebuję stworzyć niestandardową mapę ciepła, jak pokazano na załączonym rysunku. Różni się od konwencjonalnej mapy ciepła w tym sensie, że chcę używać dwóch gradientów kolorów, jednego dla wartości dodatnich, a drugiego dla wartości ujemnych.Własna mapa ciepła w R

enter image description here

Jak widać na załączonym rysunku, ja jak jeden kolor przedstawiają intensywność wartościach dodatnich (a idealnie, powyżej pewnej wartości progowej) i drugi kolor w celu przedstawienia intensywność wartościami są ujemne (alternatywnie poniżej progu).

Nieco tła: mam zestaw binarnych opcji wyboru, jedna opcja jest preferowana dla pewnego zakresu danych, podczas gdy druga jest preferowana dla pozostałych danych. Chcę zapewnić wizualną pomoc, która zobrazuje, która opcja/wybór jest lepsza dla różnych kombinacji danych, ale chcę, aby wizualna pomoc zapewniała również skalę "lepszej" sytuacji, jaką jedna opcja ma nad drugą dla tej instancji. Kolor będzie wskazywał, którą opcję wybrać, podczas gdy intensywność koloru określa, o ile lepsza jest ta opcja w porównaniu do drugiej.

+0

ten nazywany jest rozbieżny paletę kolorów, a tam wiele z nich w pakiecie RColorBrewer. Tak długo, jak jest prawidłowo wyśrodkowany na 0, to jest to właściwe. – Spacedman

Odpowiedz

9

tutaj jest przykład przy użyciu ggplot2:

# sample data 
df <- data.frame(expand.grid(x = 1:4, y = 1:4), v = runif(16, -10, 10)) 

# plot 
ggplot(df, aes(x, y, fill = v, label = sprintf("%.1f", v))) + 
    geom_tile() + geom_text() + 
    scale_fill_gradient2(low = "blue", high = "red") 

enter image description here

+0

Dzięki, to działa. – Arjun

+0

To naprawdę świetny i użyteczny kawałek kodu, dziękuję! – mfk534

Powiązane problemy