2016-05-02 42 views
0

。所以,这是我的代码:如何使用ggplot2在R中的geom_bar r上添加标签/频率

library(ggplot2); library(scales); library(reshape2); 
da1 <- read.table(text = "NÃO SIM 
5 1 
24 44 
",sep = "",header = TRUE) 
da1m <- melt(cbind(da1, ind = rownames(da1)), id.vars = c('ind')) 
da1m$Resposta <- c("NÃO", "SIM", "NÃO", "SIM") 
names(da1m) <- c("Resposta", "variable", "value") 

ggplot(da1m,aes(x = variable, y = value,fill = Resposta)) + 
geom_bar(position = "fill",stat = "identity", colour = "black") + 
scale_y_continuous(labels = percent_format())+ 
labs(title = "Gráfico 1", x="Gosta de utilizar o R", 
    y="Há interessse em aprimorar os conhecimentos em R")+ 
scale_fill_manual(values=c("#E69F00", "#56B4E9"))+ 
geom_text(aes(label=value), position=position_dodge(width=0.9), 
     vjust=-0.5) 

而这就是我得到:

geom_bar with label error

我在做什么错?当我尝试添加频率时,图表奇怪地也开始在geom_text的功能中。

回答

0

为了说明,这里是定位文本标签两种不同的选择,但你可以改变这些需要:

library(dplyr) 

# Add two position locations for text labels (centered and top) 
da1m = da1m %>% group_by(variable) %>% 
    mutate(y.pos.ctr = cumsum(value) - 0.5*value, 
     y.pos.top = cumsum(value)) 

ggplot(da1m, aes(x=variable, y=value, fill=Resposta)) + 
    geom_bar(stat = "identity", colour = "black") + # get rid of position="fill" 
    #scale_y_continuous(labels = percent_format()) + # y values don't seem to be percentages 
    labs(title = "Gráfico 1", x="Gosta de utilizar o R", 
     y="Há interessse em aprimorar os conhecimentos em R")+ 
    scale_fill_manual(values=c("#E69F00", "#56B4E9")) + 
    geom_text(aes(label=value, y=y.pos.ctr), colour="white") + # Centered value labels 
    geom_text(aes(label=value, y=y.pos.top), colour="red") # Value labels at top of each bar section 

enter image description here

+0

嗨!非常感谢你!我对ggplot还不太了解,这非常有帮助:) –

相关问题