将多个图合并为一个时的边距文本
margin text when combining multiple plots into one
我有一系列情节想合二为一,无法使用facet_wrap。所以我的每个地块都是一个单独的 object。我想要它们的大小都一样,我可以这样组合它们。
p = ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + xlab("") + ylab("")
g=ggpubr::ggarrange(p, p, p,
p, p, p,
p, p, p,
ncol = 3, nrow = 3)
我想添加一些适用于列和行的文本标签,如此处所示。
我已经尝试为各个图添加标题(例如,顶行的标题),但是与其他图相比,这会减小(灰色)图的大小,因此图尺寸不再是全部相同的大小。
任何线索将不胜感激。
您可以添加辅助坐标轴,清除主要坐标轴的标题并删除辅助坐标轴的刻度线但保留标题(查看我添加到您的 ggplot
中的 theme
函数 object).然后可以使用这些辅助轴的图块来编写您想要的文本。看下面的例子。
library(ggplot2)
library(ggpubr)
p <- ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point() +
xlab("") + ylab("") +
scale_y_continuous(position = 'right', sec.axis = dup_axis()) +
scale_x_continuous(position = "top", sec.axis = dup_axis()) +
theme(plot.title = element_text(hjust=0.5),
axis.text.x.top = element_blank(),
axis.ticks.x.top = element_blank(),
axis.text.y.right = element_blank(),
axis.ticks.y.right = element_blank(),
axis.title.x.bottom = element_blank(),
axis.title.y.left = element_blank())
ggarrange(p + xlab("some text 1"),
p + xlab("some text 2"),
p + xlab("some text 3") + ylab("some text 33"),
p, p, p + ylab("some text44"),
p, p, p + ylab("some text55"),
ncol = 3, nrow = 3)
您可以将 axis.title.y.right = element_text(angle = 0)
添加到 theme
中,使 y-axis 标题为水平标题。
参照How to keep axis labels in one side and axis title in another using ggplot2
我有一系列情节想合二为一,无法使用facet_wrap。所以我的每个地块都是一个单独的 object。我想要它们的大小都一样,我可以这样组合它们。
p = ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + xlab("") + ylab("")
g=ggpubr::ggarrange(p, p, p,
p, p, p,
p, p, p,
ncol = 3, nrow = 3)
我想添加一些适用于列和行的文本标签,如此处所示。
我已经尝试为各个图添加标题(例如,顶行的标题),但是与其他图相比,这会减小(灰色)图的大小,因此图尺寸不再是全部相同的大小。
任何线索将不胜感激。
您可以添加辅助坐标轴,清除主要坐标轴的标题并删除辅助坐标轴的刻度线但保留标题(查看我添加到您的 ggplot
中的 theme
函数 object).然后可以使用这些辅助轴的图块来编写您想要的文本。看下面的例子。
library(ggplot2)
library(ggpubr)
p <- ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point() +
xlab("") + ylab("") +
scale_y_continuous(position = 'right', sec.axis = dup_axis()) +
scale_x_continuous(position = "top", sec.axis = dup_axis()) +
theme(plot.title = element_text(hjust=0.5),
axis.text.x.top = element_blank(),
axis.ticks.x.top = element_blank(),
axis.text.y.right = element_blank(),
axis.ticks.y.right = element_blank(),
axis.title.x.bottom = element_blank(),
axis.title.y.left = element_blank())
ggarrange(p + xlab("some text 1"),
p + xlab("some text 2"),
p + xlab("some text 3") + ylab("some text 33"),
p, p, p + ylab("some text44"),
p, p, p + ylab("some text55"),
ncol = 3, nrow = 3)
您可以将 axis.title.y.right = element_text(angle = 0)
添加到 theme
中,使 y-axis 标题为水平标题。
参照How to keep axis labels in one side and axis title in another using ggplot2