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 中的下标的主要内容,如果未能解决你的问题,请参考以下文章

使用 geom_label() 添加指向重要点的线

在ggplot(R)上包装geom_text / geom_label [重复]

如何将使用 geom_label() 制作的标签的文本居中,其垂直位置已被 vjust 更改? (ggplot2 包)

单独或通过美学轻推/重新定位geom_labels?

R语言ggplot2使用geom_label()函数添加文本标签的一些操作

数组中的元素的索引 是数组下标 还是数组的值