ggplot:强制显示未使用的指南

问题描述 投票:0回答:1

我正在开发一个通用绘图功能。 我想用一大块文本来注释这个图(

info
)。 然而,由于我的图可能有 1 个或多个方面行/列, 按照建议使用
labs(tag=info)
geom_text
annotate
这里这里 获得合理的间距是一个很大的痛苦。

问题是:ggplot 已经可以计算合理的间距 --- 对于图例。所以,我想劫持图例来显示我的

info
。如果我有任何现有的指南(例如颜色),我可以添加连接
info
,如下所示。然而,这只有在情节中使用“色彩”美学时才有效。我想要一种可靠的方式来添加图例并强制显示它,也许具有虚拟的美感。

library('ggplot2')

add.info = function(g,info,guide='colour'){
  label = sprintf('%s\n\n%s',info,g$label[[guide]])
  args = setNames(list(label),guide)
  g = g + do.call(labs,args)
}

X = data.frame(x=1,y=1,z=1)
g = ggplot(X,aes(x=x,y=y,color=z)) +
  geom_point()
g = add.info(g,'hello world',guide='colour')
print(g)
ggplot2 legend
1个回答
0
投票

也许您正在寻找

guide_custom
,它在
ggplot2 3.5.0
中介绍过:

library("ggplot2")

X <- data.frame(x = 1, y = 1, z = 1)
g <- ggplot(X, aes(x = x, y = y)) +
  geom_point()

g +
  guides(
    custom = guide_custom(
      grid::textGrob(label = "hello world"),
      title = "Info"
    )
  )

© www.soinside.com 2019 - 2024. All rights reserved.