ggplot-在画布内保留可变长度的文本

时间:2019-05-07 15:21:17

标签: r ggplot2 geom-text right-align

我需要geom_text显示的文本必须在情节的画布内。问题是geom_text的内容是动态分配的。因此,我的问题是,如何绘制下面的绘图,其中名为variableLabelSize的变量的内容完全显示在画布中。

我的第一个想法是创建一个函数,其中variableLabelSizexLegPos的参数。其次,我也尝试使用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

enter image description here

我认为必须指出我的问题与问题How to make geom_text plot within the canvas's bounds不同,因为在我的示例中,geom_text 未绑定。我的意思是,我不使用geom_text(aes(...)),我使用geom_text()

1 个答案:

答案 0 :(得分:0)

我最终找到了使用参数hjust=1的非常简单的方法。

此外,我将x的{​​{1}}值保留为最大值,即geom_text

下面,我正在绘制三个文本,其中所有文本均右对齐:

max(df1$x)

enter image description here