【问题标题】:Adjusting data labels position with facet_grid in ggplot2在 ggplot2 中使用 facet_grid 调整数据标签位置
【发布时间】:2016-07-05 16:41:03
【问题描述】:

我在 R 中有这个例子:

install.packages("plyr")
library(plyr)

install.packages("ggplot2")
library(ggplot2)

install.packages("ggthemes")
library(ggthemes)

这是我的代码:

    uf <- c("AC","AC","AC","AC","AC","AC","AC","AC","AM","AM","AM",
"AM","AM","AM","AM","AM")

    da <- c("Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada")

    tr <- c(97,99,90.5,78.6,3,1,9.5,21.4,97.2,99.1,96.8,98.7,2.8,0.9,3.2,1.3)

    resposta <- c("resposta","resposta","resposta","resposta","não resposta","não resposta","não resposta","não resposta","resposta","resposta","resposta","resposta", 
"não resposta","não resposta","não resposta","não resposta")

    taxa <- data.frame(uf, da, tr,resposta)

######_Adjusting data labels position_###############
   taxa <- ddply(taxa, .(da), transform, pos = cumsum(tr) - (0.5 * tr)) # Ajusta a posição

   g1 <- ggplot()+ geom_bar(aes(y = tr, x = da, fill = resposta), data = taxa, 
                          stat="identity") +
                facet_wrap(~uf) +
                geom_text(data=taxa, aes(x = da, y = pos, label = tr), size=4) + 
                theme(legend.position="bottom", legend.direction="horizontal", 
                 legend.title = element_blank())

   g1

制作这个图: Question for dependencia with facet for uf

我想用条形图内的所有值生成这个数字。而y轴为100

任何帮助将不胜感激。

【问题讨论】:

    标签: r graphics ggplot2 plyr facet


    【解决方案1】:

    我稍微整理了您的代码并使用ifelse 来确定标签的正确位置。

    Library(ggplot2)
    
    uf <- c("AC","AC","AC","AC","AC","AC","AC","AC","AM","AM","AM",
            "AM","AM","AM","AM","AM")
    
    da <- c("Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada","Federal", "Estadual", "Municipal", "Privada")
    
    tr <- c(97,99,90.5,78.6,3,1,9.5,21.4,97.2,99.1,96.8,98.7,2.8,0.9,3.2,1.3)
    
    resposta <- c("resposta","resposta","resposta","resposta","não resposta","não resposta","não resposta","não resposta","resposta","resposta","resposta","resposta", 
                  "não resposta","não resposta","não resposta","não resposta")
    
    taxa <- data.frame(uf, da, tr,resposta)
    
    ######_Adjusting data labels position_###############
    
    taxa$pos <- ifelse(taxa$tr > 50, taxa$tr / 2, 100 -  taxa$tr / 2)
    
    ggplot(taxa, aes(y = tr, x = da, fill = resposta, label = tr)) + 
      geom_bar(stat="identity") +
      geom_text(aes(y = pos), size=4) + 
      facet_wrap(~uf) +
      theme(legend.position="bottom", legend.direction="horizontal", 
            legend.title = element_blank())
    

    【讨论】:

      猜你喜欢
      • 2018-11-03
      • 2022-12-12
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多