Questo potrebbe essere principalmente il risultato di una mia incomprensione su come panel.margin = unit(...)
funziona nella funzione theme()
... ma non sono in grado di personalizzare i margini in facet_wrap nel modo desiderato. Fondamentalmente, voglio un facet_grid che assomigli a questo, con il facet text (es. strip.text
) inserito in ogni facet e senza spcaing tra ogni facet:In ggplot2 e facet_wrap, come rimuovere tutti i margini e il padding e mantenere strip.text?
(Ho lasciato nei bordi rosa per mostrare le dimensioni di ogni sfaccettatura)
quindi, ecco il codice finora.
Per impostare il backup dei dati e la trama:
library(ggplot2)
library(grid)
p <- ggplot() +
geom_bar(data = mtcars, aes(x = cyl, y = qsec), stat = 'identity') +
facet_wrap(~ carb, ncol = 3)
mytheme <- theme_minimal() + theme(
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
panel.margin = unit(0, "lines"),
panel.border = element_rect(colour = rgb(1.0, 0, 0, 0.5), fill=NA, size=1)
)
La trama di serie
p + mytheme
Rimozione del strip.text completamente
p + mytheme + theme(strip.text = element_blank())
Aggiunta del strip.text e insetting esso
p + mytheme +
theme(strip.text = element_text(size = rel(3.0), vjust = -4.0))
Il reinserimento di strip.text (e la maggiore dimensione relativa) aumenta il margine verticale tra le due file. Quindi, a questo punto, non so come chiudere lo spazio verticale tra le righe superiore e inferiore.
Troppo margine negativop + mytheme +
theme(strip.text = element_text(size = rel(3.0), vjust = -4.0),
panel.margin = unit(c(-2, -2), "lines"))
Così Come faccio a indirizzare solo il panel.margin tra le due file?
Modifica: Ulteriori informazioni. Lo spazio tra le file sembra essere strip.background
:
p + mytheme +
theme(strip.text = element_text(size = rel(3.0), vjust = -4.0),
panel.margin = unit(-1, "lines"),
strip.background = element_rect(fill = rgb(0, 1.0, 0, 0.2)))
Se si utilizza 'panel.margin.y = unit (-2, "lines") ', diminuisci solo lo spazio tra le righe. E 'quello che stavi cercando o c'era qualcos'altro? – maj
@maj ... non ... non può essere così semplice ... ma lo era. Immagino di averlo perso nella documentazione da qualche parte. Puoi ripubblicare il tuo commento come risposta in modo che io possa accettarlo? –
@maj nel mio sistema ho bisogno di 'panel.margin.y = unità (-0.5," linee ")' per ottenere il risultato desiderato – Jaap