我想为每个图添加一个标签,理想情况下,标签应该放置在x轴的顶部和中心位置,下面是示例:
ggplot2::ggplot(mtcars) +
ggplot2::geom_point(ggplot2::aes(mpg, wt)) +
ggplot2::geom_smooth(ggplot2::aes(mpg, wt)) +
ggplot2::scale_y_continuous(labels = function(x) paste0(x, " very very long label")) +
ggplot2::labs(tag = "A", x = "mpg", y = "wt") +
ggplot2::theme(plot.tag.position = "top")
字符串
输出如下:
我注意到,当y轴标签很长时,标签似乎位于整个面板的中心,而不是x轴的中心。如何修复它?
2条答案
按热度按时间kyks70gy1#
如果你不打算使用Map到数据的facet,你可以用一个固定的值创建一个假的facet,并使用
strip.background
theme
元素对其进行样式化:字符串
可能更好的选择是添加一个没有标签和断点的辅助x轴,并通过将
theme
上的axis.line.x.top
设置为element_blank()
来删除行:型
lg40wkob2#
这里有一种替代方法,在
theme
中使用plot.margin
来在图的顶部创建更多的空间(t = 40)。使用annotate
函数,我们将标签A
放置在顶部。使用y = Inf
和vjust = -1.5
,我们将顶部的标签移动到额外的边距空间,为此,我们还需要使用coord_cartesian(clip = "off")
,它“允许”将注解放置在绘图区域之外。字符串
的数据