Sto cercando di utilizzare facet_grid
o facet_wrap
insieme a geom_raster
. Tuttavia, in ciascun pannello, l'estetica z
è su una scala diversa. Ad esempio,Più leggende per la stessa estetica
##Data at end of question
ggplot(dd, aes(x,y)) +
geom_raster(aes(fill=z)) +
facet_grid(type ~ var)
dà
.
Tuttavia, poiché i valori medi di C e D sono rispettivamente di circa 0 e 100, perdiamo molta risoluzione. Si potrebbe anche provare:
##Change C to D to get other panel
ggplot(subset(dd, var=="C"), aes(x,y))+
geom_raster(aes(fill=z)) +
facet_grid(type ~ var) +
theme(legend.position="bottom")
che dà
e
ma ora ho due strisce y.
Domanda
- Posso alterare il primo lotto di dare due leggende per il
fill
estetica? - Oppure, se faccio due grafici separati, posso rimuovere la striscia y su uno dei grafici per consentirmi di comprimerli - fare confusione con il tema, suggerisce che questo non è possibile.
dati
dati per riprodurre grafici
dd = expand.grid(x=1:10, y=1:10)
dd = data.frame(dd, type=rep(LETTERS[1:2], each=100),
var =rep(c("C", "D"), each=200))
dd$z = rnorm(400, rep(c(0, 100), each=200))
Grazie. Giocare con 'plot.margin' mi permetterebbe di ottenere entrambi i grafici delle stesse dimensioni? Proprio ora l'area del grafico a sinistra è più piccola di quella a destra. – csgillespie
@csgillespie, sembra così, ho modificato la risposta, ora sembra migliore. – Julius
Grazie. È praticamente la stessa soluzione che ho trovato, ** ma ** Non ho pensato di spostare l'etichetta del pannello dal lato dello schermo - in ordine. La soluzione è un po 'hacky, ma ho il sospetto che sia la soluzione migliore. BTW, usando '+ ylab (NULL)' non mostra alcuna etichetta sull'asse y, il che potrebbe rendere la cosa un po 'più facile. Grazie. – csgillespie