8
chcę uzyskał niesymetrycznego siatkę działek, takich jakggplot2: Definiowanie układu wydruku z grid.arrange() jako argument do.call()
require(ggplot2)
require(gridExtra)
df <- data.frame(value1 = rnorm(200),
value2 = rnorm(200),
value3 = rnorm(200),
value4 = rnorm(200))
p1 <- ggplot(df) + geom_density(aes(x=value1))
p2 <- ggplot(df) + geom_density(aes(x=value2))
p3 <- ggplot(df) + geom_density(aes(x=value3))
p4 <- ggplot(df) + geom_density(aes(x=value4))
grid.arrange(p1, arrangeGrob(p2,p3,p4, ncol=3), heights=c(2.5/4, 1.5/4), ncol=1)
ale przy użyciu funkcji
myplot <- function(i){
p <- ggplot(df) + geom_density(aes_string(x=i))
return(p)
}
i lapply
wezwanie
p <- lapply(c("value1","value2","value3","value4"), myplot)
do.call(grid.arrange, c(p))
W tym przypadku grid.arrange
dystrybuuje wykresy w macierzy 2 na 2. Ale chcę, aby uzyskać jak niezrównoważony układ z
grid.arrange(p1, arrangeGrob(p2,p3,p4, ncol=3), heights=c(2.5/4, 1.5/4), ncol=1)
Moje pytanie jest inna, ponieważ w moim przypadku działki są niesymetryczne. Nie mogę po prostu przekazać listy do zrobienia.call ponieważ chcę różnych wysokości dla różnych działek (patrz rysunek) – CptNemo
Więc chcesz zdefiniować układ. Zmień odpowiednio tytuł i treść pytania. – Roland
Dokonano pewnych zmian. Nie wiem, czy to jest w porządku, nie wiem dokładnie, co masz na myśli przez układ. – CptNemo