2013-01-08 14 views
8

Attualmente la legenda del diagramma viene eseguita nell'intervallo da 0,5 a -0,25, vorrei aumentare questo valore a 1 a -1 con la pausa dopo ogni intervallo di 0,25. Come lo posso fare.Aumentare manualmente l'intervallo di legende in geom_tile

Se utilizzo scale_fill_continous(), sostituisce il mio precedente valore pieno di z. Quindi, la soluzione sarebbe

+ scale_fill_continuous (pause = ss (-1,1, da = 0,25), bassa = 'bianco', 'Steelblue' alti =)

ma c'è un errore dicendo Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0 Ho provato con un altro esempio, dove ho citato intervallo da 0 a 1, ma inizia ancora da 0,555, a seconda del max. e min. valore di z

La legenda deve essere aumentata in dimensione, in modo tale che anche i colori debbano corrispondere ad essa, ovvero che il valore basso è -1 e quello alto è +1.

L'idea generale è che le tessere con valore intorno a -0.25 (al centro) non devono essere bianche in quanto non sono le più basse, il più basso è -1, il colore di -0.25 dovrebbe essere blu chiaro e non dovrebbe 'importa, se il valore sotto che viene visualizzato nel grafico o no, come si sta fornendo limiti personalizzati.

Esempio Trama:

plot

codice per generare esso

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)) 

risposta

17

È necessario specificare il limits della bilancia:

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

Problemi correlati