在拼凑中定位 ggplots
Positioning ggplots in patchwork
我有几个 ggplots
使用 patchwork
组合而成的图表。我制作了一个仅由 y 轴组成的 ggplot
。我现在正在努力将这个 y 轴 ggplot 移近 ggplots。有什么想法吗?
这是 pacthwork 代码:
y_axis + decreasers_p+late_bloomers_p + o2_lovers_p + solo_riders_p + plot_layout(widths = c(1, 10),
guides = "collect",
design =
"12
13
14
15")
下面是一些 ggplot 代码:
solo_riders_p <- ggplot(solo_riders, aes(x=days_incubated, y=emission))+
geom_point(aes(shape=compound, size=compound, fill=compound)) +
scale_shape_manual(values=c(21, 25))+
scale_size_manual(values=c(2.8, 2.5))+
scale_fill_manual(values=c("black", "grey"))+
labs(fill = "Compound", shape = "Compound", size = "Compound",
x = "Incubation time (days)",
y = "BVOC emission (nmol g-1 loi soil h-1)",
title = "solo_riders") +
theme_bw() +
facet_wrap(vars(jar), scales = "free_y")
y_axis <- ggplot(data.frame(l = decreasers_p$labels$y, x = 1, y = 1)) +
geom_text(aes(x, y, label = l), angle = 90) +
theme_void() +
coord_cartesian(clip = "off")
这是一个使用 ggplot2 的主题系统生成适当的 y-axis 标题作为 grob 的解决方案,然后您可以将其拼凑到其他标题上。如果您使用的是非全局自定义主题,请将 theme_get()
替换为您的主题。
显示虚拟图,因为我没有数据来重现您的确切用例。
library(ggplot2)
library(patchwork)
plt <- ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
scale_y_continuous(name = "")
yaxis <- calc_element("axis.title.y.left", theme_get())
yaxis <- element_grob(yaxis, label = "mpg")
plt + plt + yaxis +
plot_layout(
design = c("31\n32"),
widths = c(0.01, 1)
)
由 reprex package (v0.3.0)
于 2020-12-17 创建
我有几个 ggplots
使用 patchwork
组合而成的图表。我制作了一个仅由 y 轴组成的 ggplot
。我现在正在努力将这个 y 轴 ggplot 移近 ggplots。有什么想法吗?
这是 pacthwork 代码:
y_axis + decreasers_p+late_bloomers_p + o2_lovers_p + solo_riders_p + plot_layout(widths = c(1, 10),
guides = "collect",
design =
"12
13
14
15")
下面是一些 ggplot 代码:
solo_riders_p <- ggplot(solo_riders, aes(x=days_incubated, y=emission))+
geom_point(aes(shape=compound, size=compound, fill=compound)) +
scale_shape_manual(values=c(21, 25))+
scale_size_manual(values=c(2.8, 2.5))+
scale_fill_manual(values=c("black", "grey"))+
labs(fill = "Compound", shape = "Compound", size = "Compound",
x = "Incubation time (days)",
y = "BVOC emission (nmol g-1 loi soil h-1)",
title = "solo_riders") +
theme_bw() +
facet_wrap(vars(jar), scales = "free_y")
y_axis <- ggplot(data.frame(l = decreasers_p$labels$y, x = 1, y = 1)) +
geom_text(aes(x, y, label = l), angle = 90) +
theme_void() +
coord_cartesian(clip = "off")
这是一个使用 ggplot2 的主题系统生成适当的 y-axis 标题作为 grob 的解决方案,然后您可以将其拼凑到其他标题上。如果您使用的是非全局自定义主题,请将 theme_get()
替换为您的主题。
显示虚拟图,因为我没有数据来重现您的确切用例。
library(ggplot2)
library(patchwork)
plt <- ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
scale_y_continuous(name = "")
yaxis <- calc_element("axis.title.y.left", theme_get())
yaxis <- element_grob(yaxis, label = "mpg")
plt + plt + yaxis +
plot_layout(
design = c("31\n32"),
widths = c(0.01, 1)
)
由 reprex package (v0.3.0)
于 2020-12-17 创建