如何使用基于因子的轴和一个数字轴增加图表的灰色区域,以便geom_text()
图中的文本标签在视图中并且不会延伸到绘图区域之外?
特别是,我想扩展灰色区域以在绘图区域内提供允许文本标签完整显示的边距区域。
或者有更好的方法吗?
答案 0 :(得分:1)
您可以使用ggplot_gtable
更改每个ggplot的布局选项,然后使用grid.arrange
显示所有图。
library(ggplot2)
library(gridExtra)
## create a dummy ggplot
(g1 <- ggplot(mtcars, aes(wt, mpg)) +
geom_text(aes(label=rownames(mtcars)), size=6, angle=45) +
theme(plot.margin = unit(rep(1, 4), "cm")))
显然文本标签不会延伸到绘图区域之外。但是下面的代码只允许:
gg_table <- ggplot_gtable(ggplot_build(g1))
gg_table$layout$clip[gg_table$layout$name=="panel"] <- "off"
grid.draw(gg_table)
为每个面板创建一个gg_table,然后使用grid.arrange
显示所有:
grid.arrange(gg_table, gg_table, gg_table, gg_table, ncol=2)
我知道这是劳动密集型的,但您可以编写一个函数来创建多个ggplots和gg_tables以节省时间。