【问题标题】:Change geom_text to bold when parse=TRUEparse=TRUE 时将 geom_text 更改为粗体
【发布时间】:2017-09-29 09:48:59
【问题描述】:

我正在注释多面图以包含上标,但无法使文本变为粗体。我意识到这与在情节调用之外创建expression 然后指定parse=TRUE 有关。可能有一个非常简单的解决方案,但到目前为止我没有尝试过任何工作,包括使用bquote()bold()。谢谢

library(ggplot2)

data(iris)

rsq<-c(.3,.6,.75)
pos<-c(5,6,7)
Species<-levels(iris$Species)

big_data<-as.data.frame(cbind(pos, rsq))
big_data$Species<-Species

lab <- paste("r^2 == ", round(big_data$rsq,2))

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
  facet_wrap(~Species,scales='free_x')+
  geom_point(size=3,show.legend = F) +
  geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,fontface='bold')

【问题讨论】:

    标签: r plot ggplot2 geom-text


    【解决方案1】:

    我知道这是挖掘的重要时间,但是对于像我这样偶然发现这篇文章的人,您可以使用 ggtext 来获取您喜欢的格式:

    library(ggplot2)
    library(ggtext)
    big_data <- data.frame(
        pos = 5:7, 
        Species = levels(iris$Species),
        lab = paste0("<b>r<sup>2</sup> = ", sprintf("%.2f", c(.3,.6,.75), 2), "</b>")) 
    ggplot(iris, aes(x=Sepal.Length, y = Sepal.Width)) +
        facet_wrap(~Species, scales='free_x')+
        geom_point(size = 3, show.legend = FALSE) +
        geom_richtext(data = big_data, aes(x = pos, y = 1, label = lab),
            fill = NA, label.color = NA,
            label.padding = grid::unit(rep(0, 4), "pt")
        )
    

    reprex package (v0.3.0) 于 2021-01-25 创建

    【讨论】:

      【解决方案2】:

      一个小作弊 - 将文本绘制 3 次,大小略有增加。

      ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
        facet_wrap(~Species,scales='free_x')+
        geom_point(size=3,show.legend = F) +
        geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4)+
        geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4.07)+
        geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4.08)
      

      【讨论】:

        【解决方案3】:

        你可以把r变成bold()

        lab <- sprintf("bold(r)^2 == %.2f", big_data$rsq)
        

        但仅此而已。来自?plotmath

        请注意,粗体、斜体和粗体不适用于符号,因此不适用于以符号字体显示的希腊符号,例如 mu。它们也不适用于数值常量。

        对于更精细的排版,最好的选择可能是 tikzDevice。

        【讨论】:

          猜你喜欢
          • 2019-04-08
          • 2017-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-10
          • 1970-01-01
          • 1970-01-01
          • 2021-10-04
          相关资源
          最近更新 更多