Çözümlere dayanan bir dezavantaj, grid.arrange
çoğu derginin gerektirdiği gibi, arsaları harflerle (A, B, vb.) Etiketlemeyi zorlaştırmalarıdır.
Bu (ve birkaç diğer) sorunu, özellikle işlevi çözmek için cowplot paketini yazdım 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")
Nesne plot_grid()
döndürür başka ggplot2 nesnesidir ve bunu kaydedebilirsiniz ggsave()
zamanki gibi:
p <- plot_grid(iris1, iris2, labels = "AUTO")
ggsave("plot.pdf", p)
Alternatif olarak, kombine araziler için doğru boyutları elde etmeyi kolaylaştıran, save_plot()
etrafındaki ince bir sargı olan kovboy işlevini kullanabilirsiniz ggsave()
, örneğin:
p <- plot_grid(iris1, iris2, labels = "AUTO")
save_plot("plot.pdf", p, ncol = 2)
( ncol = 2
Argüman, save_plot()
yan yana iki çizim olduğunu söyler save_plot()
ve kaydedilen görüntüyü iki kat daha geniş yapar.)
Bir ızgarada parsellerin nasıl düzenleneceğine dair daha ayrıntılı bir açıklama için bu skeçe bakın . Paylaşılan bir efsane ile nasıl arsa yapılacağını açıklayan bir skeç de var .
Sık rastlanan bir karışıklık noktası, önizleme paketinin varsayılan ggplot2 temasını değiştirmesidir. Paket bu şekilde davranır çünkü başlangıçta dahili laboratuvar kullanımları için yazılmıştır ve asla varsayılan temayı kullanmayız. Bu sorunlara neden oluyorsa, bunları çözmek için aşağıdaki üç yaklaşımdan birini kullanabilirsiniz:
1. Temayı her çizim için manuel olarak ayarlayın. + theme_bw()
Yukarıdaki örnekte yaptığım gibi her konu için her zaman belirli bir tema belirtmenin iyi bir uygulama olduğunu düşünüyorum . Belirli bir tema belirtirseniz, varsayılan tema önemli değildir.
2. Varsayılan temayı tekrar ggplot2 varsayılanına döndürün. Bunu bir kod satırı ile yapabilirsiniz:
theme_set(theme_gray())
3. Paketi bağlamadan börülce fonksiyonlarını çağırın. Ayrıca, önizleme fonksiyonlarını arayarak arayamaz library(cowplot)
veya require(cowplot)
onun yerine çağrı yapamazsınız cowplot::
. Örneğin, ggplot2 varsayılan temasını kullanan yukarıdaki örnek:
## 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")
Güncellemeler:
- Cowplot 1.0'dan itibaren varsayılan ggplot2 teması artık değiştirilmiyor.
- Ggplot2 3.0.0'dan itibaren, grafikler doğrudan etiketlenebilir, bkz. Örneğin .