2013-01-06 15 views
18

Ho il seguente tipo di grafico e desidero mantenere ciascun testo di striscia sopra la casella di sfaccettatura individuale come un "titolo" di ordinamento senza avere lo sfondo grigio predefinito e il bordo nero attorno allo strip.background. Lo tengo bianco, che è vicino a quello che voglio, ma vorrei che il bordo inferiore dello strip.background o del bordo superiore dello panel.border fosse nero.Rimuovi la striscia di sfondo mantiene il bordo del pannello

enter image description here

library(ggplot2) 

ggplot(mtcars, aes(mpg, hp)) + geom_point() + 
    facet_wrap(~carb, ncol = 3) + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     strip.background = element_rect(colour="white", fill="white"), 
     panel.border = element_rect(colour = "black")) 

risposta

27

Se si imposta element_blank() per strip.background e mantenere element_rect(colour="black") per panel.border bordo quindi superiore del panel.border sarà nero.

ggplot(mtcars, aes(mpg, hp)) + geom_point() + 
    facet_wrap(~carb, ncol = 3) + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     strip.background = element_blank(), 
     panel.border = element_rect(colour = "black")) 

enter image description here

+0

Perfetto Accetterò non appena il min. il tempo di accettare è scaduto. Grazie. –

5

Impostazione panel.border potrebbe coprire il grafico a meno che non si aggiunge anche fill=NA-panel.border:

theme(panel.border = element_rect(fill = NA, colour = "black")) 

Si può anche utilizzare:

theme(panel.background = element_rect(fill = NA, color = "black") 

source (riquadro della sezione " L attributi ")

2

Si può provare:

strip.background = element_rect(colour=NA, fill=NA), 
panel.border = element_rect(fill = NA, color = "black")) 
Problemi correlati