동일한 ggplot2 그래프에 여러 개의 그림을 그리기 위해 grid.arrange를 호출 할 때 먼저 원하는 그래프의 목록을 작성합니다. 그런 다음 in a previous question과 같이 grid.arrange를 호출하는 해당 인수 목록을 작성합니다. 이것은 내 코드입니다 (내 데이터 프레임은 manip이라고 함).값으로 전달 R
args.list <- NULL;
plot.list <- NULL;
for (m in names(manip[2:10])) {
plot.list <- c(plot.list, list(qplot(manip$side, y=manip[,m],ylab=m))
}
args.list <- c(plot.list, 1, 9)
names(args.list) <- c(names(manip)[2:10], list("nrow","ncol"))
do.call(grid.arrange, args.list)
9 개의 그래프가 완전히 동일하다는 점을 제외하면이 방법이 효과적입니다. 확인 후 데이터가 항상 m=10
에 해당하는 것으로 나타났습니다. 그래서 내 생각 엔 m
값은 루프에 할당되지 않았지만 나중에 평가됩니다. 그러나 ylab=m
레이블이 올바르게 할당 된이며 모든 그래프에서 다릅니다.
그래서 차이점이 무엇인지, 통역사가 m을 플롯에 대해 평가할 때를 선택하는 방법을 알지 못합니다. 누군가 설명 할 수 있습니까?
패싯을 사용하지 않고 플롯을 개별적으로 빌드하는 이유가 있습니까? – Andrie
@Andrie : 할 수있을 것 같아요.하지만 데이터 프레임을 다시 구성해야합니다. – seb
아마 어렵지 않을 것입니다. 내 대답은 두 접근법을 모두 보여줍니다. Data.frame의 모양을 변경하는 것은 두 개의 추가 명령문이어야합니다. 하나는'reshape2'를로드하고 두 번째는'용해 '합니다. – Andrie