타일의 패싯 플롯을 결합합니다. 각 타일을 정사각형으로 만들거나 최소한 동일한 높이와 너비를 가져야합니다.grid.arrange에서 layout_matrix를 사용할 때 플롯 영역 너비 고정
지금까지 layout_matrix
을 사용하여 타일의 각 행에 동일한 높이를 제공했습니다. 나는 타일의 각 열에 동일한 폭을 고정 시키려고 할 때 붙어있다.
시도하고 내 플롯의 레이아웃 (더 복잡한 실제 데이터 방법) 설명하기 위해 mtcars
에 따라 일부 코드 :
library("tidyverse")
library("gridExtra")
df0 <- mtcars %>%
group_by(cyl) %>%
count()
df1 <- mtcars %>%
rownames_to_column("car") %>%
mutate(man = gsub("([A-Za-z]+).*", "\\1", car))
g <- list()
for(i in 1:nrow(df0)){
g[[i]] <- ggplot(data = df1 %>% filter(cyl == df0$cyl[i]),
mapping = aes(x = "", y = car, fill = qsec)) +
geom_tile() +
facet_grid(man ~ ., scales = "free_y", space = "free") +
labs(x = "", y = "") +
guides(fill = FALSE) +
theme(strip.text.y = element_text(angle=0)) +
coord_fixed()
}
m0 <- cbind(c(rep(1, df0$n[1]), rep(NA, max(df0$n) - df0$n[1])),
c(rep(2, df0$n[2]), rep(NA, max(df0$n) - df0$n[2])),
c(rep(3, df0$n[3]), rep(NA, max(df0$n) - df0$n[3])))
grid.arrange(grobs = g, layout_matrix = m0)
(내 MS 페인트 기술 마이너스) :
아마도 스트립 텍스트와 y 축의 레이블 길이가 다르면 그림 영역의 너비가 달라질 수 있습니다. 이 동작을 어떻게 피할 수 있는지 잘 모르겠습니까? 내가 큰 facet_grid
에 만들 수 있다고 생각하지만 위의 플롯의 레이아웃 근처에 아무데도 갈 수 없었다.