代码之家  ›  专栏  ›  技术社区  ›  SBista

geom\u文本中每个标签的字体大小不同

  •  4
  • SBista  · 技术社区  · 8 年前

    我用 ggplot2 . 我想使用添加标签到每个酒吧 geom_text

    a <- aggregate(mpg ~ vs + am , mtcars, function(i) round(mean(i)))
    p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
          geom_bar(stat="identity",position="dodge") + 
          geom_text(data = a, aes(label = mpg, size = mpg), 
                    position = position_dodge(width=0.9))
    

    这给了我一个这样的情节: enter image description here

    正如您所见,标签大小正在更改,但文本字体大小与标签大小不对应。第一个条的标签是15,几乎看不见。当我以固定文本大小15绘制相同的条形图时,标签并不像上面看到的那么小。以下是使用固定文本大小生成的代码和绘图:

     a <- aggregate(mpg ~ vs + am , mtcars, function(i) round(mean(i)))
    
     p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
          geom_bar(stat="identity",position="dodge") + 
          geom_text(data = a, aes(label = mpg), 
                    position = position_dodge(width=0.9), size = 15)  
    

    enter image description here

    2 回复  |  直到 8 年前
        1
  •  4
  •   parth    8 年前

    将大小设置为 sort(a$mpg) 成功了吗

    p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
        geom_bar(stat="identity",position="dodge") + 
        geom_text(data = a, aes(label = mpg), 
                  position = position_dodge(width=0.9), size = sort(a$mpg))
    

    snap1

        2
  •  3
  •   Z.Lin    8 年前

    您可以更改的范围 scale_size .

    ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
      geom_bar(stat="identity", position="dodge") + 
      geom_text(data = a, aes(label = mpg, size = mpg), 
                position = position_dodge(width=0.9)) +
      scale_size(range = c(15, 28), guide = F) #legend hidden
    

    enter image description here

    推荐文章