[英]ggarrange: Make plots (excluding titles, axis titles, axis labels) the same size
我正在嘗試使用單獨的圖和ggarrange
重新創建facet_grid
的樣式。 使用ggarrange
函數的高度和寬度參數允許我使所有繪圖的大小相同,但這包括標題、軸標題等。 有沒有辦法使繪圖本身具有相同的大小(其他試錯寬度相對於高度和寬度)?
例子
library(ggplot2)
library(ggpubr)
df <- data.frame(x=runif(100), y=runif(100))
p1 <- ggplot(df) + geom_point(aes(x=x, y=y)) + theme(axis.title = element_text(size=100))
p2 <- p1 + xlab(NULL)
p3 <- p1 + ylab(NULL)
p4 <- p1 + xlab(NULL) + ylab(NULL)
p <- ggarrange(p2, p4, p1, p3, nrow=2, ncol=2)
print(p)
這使得下面的圖,其中右上角的圖看起來比其他圖大(盡管包括軸標題,它們的大小都相同)。
這樣的事情似乎更接近預期的結果:
p_fixed <- ggarrange(p2, p4, p1, p3, nrow=2, ncol=2,
heights = c(1, 1.3, 1, 1.3),
widths=c(1.1, 1, 1.1, 1))
或者,我這樣做的原因是因為每個圖表上的色階需要不同,所以如果有辦法使用facet_grid
來做到這一點也會有所幫助。 一個更普遍的問題可能是用單個圖復制facet_grid
布局的最佳方法是什么。
試試這個patchwork
解決方案。 在列表中設置你的圖並使用wrap_plots()
函數包裝成一個組合圖:
library(ggplot2)
library(ggpubr)
library(patchwork)
#Data
df <- data.frame(x=runif(100), y=runif(100))
#Plots
p1 <- ggplot(df) + geom_point(aes(x=x, y=y)) + theme(axis.title = element_text(size=100))
p2 <- p1 + xlab(NULL)
p3 <- p1 + ylab(NULL)
p4 <- p1 + xlab(NULL) + ylab(NULL)
#List
List <- list(p2,p4,p1,p3)
#Plot
Plot <- wrap_plots(List,ncol = 2,nrow = 2)
輸出將被調整以保持相同的尺寸:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.