问题描述
我想找到一个简单的子图编号解决方案,因为这是我工作中非常标准的练习。我可以通过排列图并通过例如自动添加数字来做到这一点public class GoogleController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
var result = new Result();
result.Value1 = 123;
return Ok(result);
}
[HttpPost]
public async Task<IActionResult> PostWebHook()
{
string body;
using (var reader = new StreamReader(Request.Body))
{
body = await reader.ReadToEndAsync();
}
return Ok("Test123");
}
}
。但是,如果我的 ggplot 已经通过 egg::ggarrange()
拆分为多个方面并且带有长条状文本,则这会变得复杂且特别难看。我已经问过 similar question here。
在出版物中,我通常希望在左上角或右上角带有标签的子图,如 facet_grid()
或 1,2,3...
和描述以顶部为中心的构面的子图文本标签。标签和文本都应该相互独立。看我上面提到的@stefan的解决方案question,标签和文字显然不是相互独立的,标签不是左对齐的。
我想知道,是否有一个函数可以将 A,B,C,...
或 1,3...
之类的标签左对齐放在独立 (居中)剥离文本本身?那太棒了,会为我省去很多麻烦。
我显然可以只使用像 A,...
这样的标签并左对齐它。但是如果我有一个很长的文本,这看起来真的很难看。我想要实现的是左侧的数字标签和跨越两行的文本标签。
一种可接受的解决方案是将条带文本分成彼此独立的两列。通过这种方式,我可以将数字左对齐并将文本标签居中放置在两行上。
解决方法
感谢@stefan,我查看了 tagger 包。我发现 tag_facets()
函数有点难以使用(尤其是定位)。
但是,我注意到我已经拥有 tag_facet()
包中的 egg
函数(没有 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),legend.box.margin=margin(-10,-10,-10))
(虽然它会更直观,但这似乎不适用于 egg::tag_facet_outside()
函数...)