2013-01-08 16 views
8

Obecnie legenda wydruku działa dla zakresu od 0,5 do -0,25, chciałbym zwiększyć to do 1 do -1 z przerwą po każdym interwale 0,25. Jak mogę to zrobić.Zwiększanie zakresu legendy w geom_tile ręcznie

Jeśli użyję scale_fill_continous(), to zastępuje moją poprzednią wypełnioną wartość z. Tak więc, rozwiązanie byłoby

+ scale_fill_continuous (przerwy = seq (-1,1 poprzez = 0,25), 'białe', 'wysoki' steelblue = niski =)

ale jest błąd z informacją: Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0 Próbowałem z innym przykładem, gdzie wspomniałem zakres od 0 do 1, ale nadal zaczyna się od 0.555, w zależności od maks. i min. wartość z

Legenda powinna zostać zwiększona w wymiarze, aby kolory również do niej pasowały, co oznacza, że ​​niski to -1, a wysoki +1.

Cała idea, to płytki o wartości około -0.25 (w środku) nie powinny być białe, ponieważ nie są najniższe, najniższa wynosi -1, kolor -0.25 powinna być jasnoniebieska i nie powinna ma znaczenie, jeśli wartość pod tą wartością jest wyświetlana na wykresie lub nie, ponieważ zapewnia ona limity niestandardowe.

Przykład działki:

plot

kod, aby wygenerować go

pp <- function (n,r=4) { 
x <- seq(-r*pi, r*pi, len=n) 
df <- expand.grid(x=x, y=x) 
df$r <- sqrt(df$x^2 + df$y^2) 
df$z <- cos(df$r^2)*exp(-df$r/6) 
df 
} 
ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z)) 

Odpowiedz

17

Musisz określić limits swojej skali:

p <- ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z)) 

p + scale_fill_continuous(limits=c(-1, 1), breaks=seq(-1,1,by=0.25)) 

enter image description here

Powiązane problemy