geom_label 中的下标
Posted
技术标签:
【中文标题】geom_label 中的下标【英文标题】:Subscript in geom_label 【发布时间】:2021-10-26 02:43:56 【问题描述】:我正在尝试制作一个带有标签的生长期数据图,该标签指示当前生长期天数。我希望标签阅读: 999 GDD50F 但是 parse 似乎不适用于我拥有的代码:
library(dplyr)
library(ggplot2)
data.frame(x=sort(runif(100,0,100)),
y=sort(runif(100,0,100)))%>%
ggplot(aes(x=x, y=y))+
geom_line()+
geom_label(aes(x=max(x), y=max(y),
label=paste0(round(max(y))," GDD[50F]")),
hjust=1, parse=T)
我觉得bquote()
或expression()
可能有效,但我不知道如何将最大值作为字符串的一部分。
【问题讨论】:
【参考方案1】:这是使用ggtext
中的geom_richtext
的一种方式。
library(ggplot2)
library(ggtext)
data.frame(x=sort(runif(100,0,100)),
y=sort(runif(100,0,100))) %>%
ggplot(aes(x=x,y=y))+
geom_line()+
geom_richtext(aes(x=max(x),
y=max(y),
label=paste(round(max(y)), "GDD<sub>50F</sub>")),
hjust=1)
【讨论】:
【参考方案2】:你可以在这里使用backticks
。
df <- data.frame(x=sort(runif(100,0,100)),
y=sort(runif(100,0,100)))
label <- paste0("`",round(max(df$y))," GDD`[`50F`]")
ggplot(df, aes(x=x, y=y))+
geom_line()+
annotate(geom="label", x=max(df$x), y=max(df$y), label=label, parse = TRUE)
【讨论】:
请注意,您的geom_label()
仍然有效 - 而不是 annotate()
以上是关于geom_label 中的下标的主要内容,如果未能解决你的问题,请参考以下文章
在ggplot(R)上包装geom_text / geom_label [重复]
如何将使用 geom_label() 制作的标签的文本居中,其垂直位置已被 vjust 更改? (ggplot2 包)