【问题标题】:Subscript in geom_labelgeom_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() 可能有效,但我不知道如何将最大值作为字符串的一部分。

【问题讨论】:

    标签: r ggplot2 label subscript


    【解决方案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()
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多