기반 솔루션의 단점 중 하나 grid.arrange
는 대부분의 저널에서 요구하는대로 문자 (A, B 등)로 도표에 레이블을 붙이기가 어렵다는 것입니다.
이 (및 몇 가지) 문제, 특히 함수를 해결하기 위해 cowplot 패키지를 작성했습니다 plot_grid()
.
library(cowplot)
iris1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() + theme_bw()
iris2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) + theme_bw() +
theme(legend.position = c(0.8, 0.8))
plot_grid(iris1, iris2, labels = "AUTO")
plot_grid()
반환 하는 객체 는 또 다른 ggplot2 객체이며 ggsave()
평소 와 같이 저장할 수 있습니다 .
p <- plot_grid(iris1, iris2, labels = "AUTO")
ggsave("plot.pdf", p)
또는 cowplot 함수를 사용할 수 있습니다.이 기능 은 결합 된 플롯에 대한 올바른 치수를 쉽게 얻을 수 save_plot()
있는 얇은 래퍼 ggsave()
입니다.
p <- plot_grid(iris1, iris2, labels = "AUTO")
save_plot("plot.pdf", p, ncol = 2)
( ncol = 2
논쟁은 save_plot()
나란히 두 개의 플롯 save_plot()
이 있으며 저장된 이미지를 두 배 넓게 만듭니다.)
그리드에 플롯을 정렬하는 방법에 대한 자세한 설명은 이 비네팅을 참조하십시오 . 공유 범례로 플롯하는 방법을 설명하는 비 네트도 있습니다 .
혼란의 한 가지 빈번한 점은 cowplot 패키지가 기본 ggplot2 테마를 변경한다는 것입니다. 패키지는 원래 내부 실습용으로 작성되었으므로 기본 방식을 사용하지 않기 때문에이 방식으로 작동합니다. 이로 인해 문제가 발생하면 다음 세 가지 방법 중 하나를 사용하여 문제를 해결할 수 있습니다.
1. 모든 플롯에 대해 테마를 수동으로 설정하십시오. + theme_bw()
위의 예에서 와 같이 항상 각 플롯에 특정 테마를 지정하는 것이 좋습니다 . 특정 테마를 지정하면 기본 테마는 중요하지 않습니다.
2. 기본 테마를 ggplot2 기본값으로 되돌립니다. 한 줄의 코드 로이 작업을 수행 할 수 있습니다.
theme_set(theme_gray())
3. 패키지를 부착하지 않고 cowplot 기능을 호출하십시오. 또한 앞에 추가하여 cowplot 함수를 호출 library(cowplot)
하거나 require(cowplot)
대신 호출 할 수 없습니다 cowplot::
. 예를 들어, ggplot2 기본 테마를 사용하는 위의 예는 다음과 같습니다.
## Commented out, we don't call this
# library(cowplot)
iris1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot()
iris2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
theme(legend.position = c(0.8, 0.8))
cowplot::plot_grid(iris1, iris2, labels = "AUTO")
업데이트 :
- cowplot 1.0부터는 기본 ggplot2 테마가 더 이상 변경되지 않습니다.
- ggplot2 3.0.0부터 플롯에 직접 레이블을 지정할 수 있습니다 (예 : 여기 참조) .