【发布时间】:2019-05-07 15:21:16
【问题描述】:
我需要geom_text 显示的文本必须在绘图的画布内。问题是geom_text 的内容是动态分配的。所以,我的问题是,如何制作下图,其中名为 variableLabelSize 的变量的内容完全显示在画布内。
我的第一个想法是创建一个函数,其中variableLabelSize 是xLegPos 的参数。其次,我也尝试使用hjust='inward',但我认为它可能只适用于映射到aes 的数据。欢迎任何想法:)
我正在运行这个演示:
require(ggplot2)
variableLabelSize = "Variable length size text"
xLegPos = 100 - 15
df1 = data.frame(x=1:100, y=rnorm(100))
p = ggplot(df1, aes(x=x, y=y)) + geom_point()
p = p + geom_hline(yintercept = 2)
p = p + geom_text(x=xLegPos, y=2, label=variableLabelSize)
p
我认为重要的是要指出我的问题与问题 How to make geom_text plot within the canvas's bounds 不同,因为在我的示例中,geom_text 没有绑定到数据框。我的意思是,我不使用geom_text(aes(...)),我使用geom_text()。
【问题讨论】:
-
用这个帮助替换你的
geom_text()吗?geom_text(x=xLegPos, y=2, label=variableLabelSize, hjust = "inward", vjust = "inward") -
感谢@teunbrand 的建议。但这仅适用于
geom_text使用geom_text(aes(...))映射到 data.frame 的情况
标签: r ggplot2 geom-text right-align