添加独立于条形文本标签的子图编号
Posted
技术标签:
【中文标题】添加独立于条形文本标签的子图编号【英文标题】:Add subfigure number independent of strip text label 【发布时间】:2021-07-02 01:13:17 【问题描述】:我想找到一个简单的解决方案来为子图编号,因为这是我工作的一个非常标准的练习。我可以通过安排图并通过例如自动添加数字来做到这一点。 egg::ggarrange()
。但是,如果我有一个 ggplot 已经通过facet_grid()
拆分为多个方面,并且带有长条形文本,这将变得复杂且特别难看。我已经问过similar question here。
在出版物中,我通常希望在左上角或右上角添加带有标签的子图,例如 1, 2, 3...
或 A, B, C,...
,并且子图文本标签描述居中的刻面。标签和文本都应该相互独立。查看我上面提到的question中@stefan的解决方案,标签和文本显然不是相互独立的,标签也不是左对齐的。
我想知道,是否有一个函数可以将1, 2, 3...
或A, B, C,...
之类的标签左对齐放在(居中)条形独立的刻面右上角顶部文字本身?那太棒了,而且会为我省去很多麻烦。
我显然可以使用"<b>1</b> Text label"
之类的标签并左对齐。但是,如果我有很长的文字,这看起来真的很难看。我想要实现的是左侧的数字标签和跨越两行的文本标签。
一个可接受的解决方案是将带状文本拆分为彼此独立的两列。这样,我可以将一个数字左对齐并在两行上居中放置一个文本标签。
【问题讨论】:
你看过tagger吗? 不,我没有!感谢您的信息,我会看看它:) 【参考方案1】:感谢@stefan,我查看了tagger 包。我发现tag_facets()
函数有点难以使用(尤其是定位)。
但是,我注意到我已经拥有 egg
包中的 tag_facet()
函数(没有 s!)并决定试一试。这以一种不幸的方式改变了绘图的边距并将条形文本设置为element_blank()
,但这很容易恢复(similar solution presented here in the answer by @Lyngbakr)。
我只是将它添加到我的情节中,并且效果很好:
egg::tag_facet(p, tag_pool = 1:5, open = "", close = "", vjust = -0.7) +
coord_cartesian(clip = "off") +
theme(strip.text = element_text(),
legend.margin=margin(0,0,0,0),
legend.box.margin=margin(-10,-10,-10,-10))
(虽然它会更直观,但这似乎不适用于egg::tag_facet_outside()
函数...)
【讨论】:
以上是关于添加独立于条形文本标签的子图编号的主要内容,如果未能解决你的问题,请参考以下文章