grid.arrange를 사용하여 가변 플롯 목록을 정렬하려면 어떻게 해야 합니까?
library(ggplot2)
df <- data.frame(x=1:10, y=rnorm(10))
p1 <- ggplot(df, aes(x,y)) + geom_point()
plist <- list(p1,p1,p1,p1,p1)
# In my real example,a plot function will fit a ggplot to a list of datasets
#and return a list of ggplots like the example above.
다음을 사용하여 그림을 배열하고 싶습니다.grid.arrange()에gridExtra.
의 플롯 수가 다음과 같을 경우 어떻게 해야 합니까?plist변수입니까?
효과:grid.arrange(plist[[1]],plist[[2]],plist[[3]],plist[[4]],plist[[5]])
좀 더 일반적인 해결책이 필요해요생각은?
이거 어때:
library(gridExtra)
n <- length(plist)
nCol <- floor(sqrt(n))
do.call("grid.arrange", c(plist, ncol=nCol))

사용할 수 있습니다.grid.arrange()그리고.arrangeGrob()목록을 사용하여 목록을 지정하는 경우grobs =각 함수의 인수입니다.예: 제공한 예:
library(ggplot2)
library(gridExtra)
df <- data.frame(x=1:10, y=rnorm(10))
p1 <- ggplot(df, aes(x,y)) + geom_point()
plist <- list(p1,p1,p1,p1,p1)
grid.arrange(grobs = plist, ncol = 2) ## display plot
ggsave(file = OutFileName, arrangeGrob(grobs = plist, ncol = 2)) ## save plot
완전성을 위해 (그리고 이미 대답된 이 오래된 질문이 부활됨에 따라, 최근에) 저는 다음을 사용하여 해결책을 추가하고 싶습니다.cowplot패키지:
cowplot::plot_grid(plotlist = plist, ncol = 2)
그리드 추가 패키지를 사용하는 질문이 구체적으로 명시되어 있는 것은 알지만,wrap_plots패치워크 패키지의 함수는 변수 길이 목록을 처리하는 좋은 방법입니다.
library(ggplot2)
# devtools::install_github("thomasp85/patchwork")
library(patchwork)
df <- data.frame(x=1:10, y=rnorm(10))
p1 <- ggplot(df, aes(x,y)) + geom_point()
plist <- list(p1,p1,p1,p1,p1)
wrap_plots(plist)
유용한 점은 필요한 열 수를 지정할 필요가 없으며 열과 행의 수를 동일하게 유지하는 것입니다.예:
plist <- list(p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1)
wrap_plots(plist) # produces a 4 col x 4 row plot
패치워크 패키지에 대한 자세한 내용은 여기를 참조하십시오.
한 페이지에 모든 그림을 적합하려면 다음과 같이 열과 행의 수를 계산할 수 있습니다.
x = length(plots)
cols = round(sqrt(x),0)
rows = ceiling(x/cols)
대부분의 다중 플롯 함수는 ncol과 now를 인수로 사용하므로 이러한 함수를 그냥 거기에 넣을 수 있습니다.저는 ggpubr의 garrange를 좋아합니다.
ggarrange(plotlist = plots, ncol=cols, nrow = rows)
이것은 열보다 행을 더 선호하므로 반대로 하려면 반대로 합니다.즉, 6개의 그림에 대해 3개의 행과 2개의 열을 제공합니다.
언급URL : https://stackoverflow.com/questions/10706753/how-do-i-arrange-a-variable-list-of-plots-using-grid-arrange
'programing' 카테고리의 다른 글
| 소방서:컬렉션에서 임의의 문서를 가져오는 방법 (0) | 2023.06.18 |
|---|---|
| 기존 Oracle 시퀀스를 사용하여 최대 절전 모드에서 ID를 생성하는 방법은 무엇입니까? (0) | 2023.06.13 |
| POI / Excel : "상대적" 방식으로 공식 적용 (0) | 2023.06.13 |
| 'finally'는 항상 파이썬에서 실행됩니까? (0) | 2023.06.13 |
| Next 2와 3에서 현재 경로 이름을 얻는 방법은 무엇입니까? (0) | 2023.06.13 |

