为组合的 3 个数字添加图例
add legends for combined 3 figures
我想为我的 3 个数字添加相同的图例。
通常,我倾向于使用 ggarrange
或 plot_grid
函数要求 common.legend = TRUE
绘制相同的图例。但现在我想添加我的图例,它是同一行的单个图。
我想要如下图
对我有什么建议吗?
有一种使用基本 R 图形功能的相当简单的方法。初始化一个 plot.new()
并自定义任何 legend
.
cols <- c(7, 4, 2) ## colors
op <- par(mfrow=c(2, 2), mar=c(4.5, 4, 2, 2) + .1) ## set and stor old pars
boxplot(len ~ dose, m, col=0, border=cols)
plot(len ~ jitter(dose), m, col=cols)
plot(m$len, type='l', col='orange')
plot.new()
legend('center', leg=c('foo', 'bar', 'baz'), pch=15, col=cols, h=TRUE, bty='n')
par(op) ## restore old pars
数据:
m <- expand.grid(dose=c(.5, 1, 2), len=matrix(runif(100, 0, 30)))
m[, 2] <- m[, 2] + (1:3*10)
我们也可以使用从 link
创建的 patchwork
(对象 'bxp'、'dp'、'lp')
library(patchwork)
bxp + dp + lp + guide_area() +
plot_layout(guides = "collect")
-输出
我想为我的 3 个数字添加相同的图例。
通常,我倾向于使用 ggarrange
或 plot_grid
函数要求 common.legend = TRUE
绘制相同的图例。但现在我想添加我的图例,它是同一行的单个图。
我想要如下图
对我有什么建议吗?
有一种使用基本 R 图形功能的相当简单的方法。初始化一个 plot.new()
并自定义任何 legend
.
cols <- c(7, 4, 2) ## colors
op <- par(mfrow=c(2, 2), mar=c(4.5, 4, 2, 2) + .1) ## set and stor old pars
boxplot(len ~ dose, m, col=0, border=cols)
plot(len ~ jitter(dose), m, col=cols)
plot(m$len, type='l', col='orange')
plot.new()
legend('center', leg=c('foo', 'bar', 'baz'), pch=15, col=cols, h=TRUE, bty='n')
par(op) ## restore old pars
数据:
m <- expand.grid(dose=c(.5, 1, 2), len=matrix(runif(100, 0, 30)))
m[, 2] <- m[, 2] + (1:3*10)
我们也可以使用从 link
创建的patchwork
(对象 'bxp'、'dp'、'lp')
library(patchwork)
bxp + dp + lp + guide_area() +
plot_layout(guides = "collect")
-输出