使用R中的ggplot2将平均值映射到计数图

使用R中的ggplot2将平均值映射到计数图,r,ggplot2,R,Ggplot2,我有一个数据框,如下所示: variable=c("D","D","C","C","C","A","B","B","B","B") value=c(80,100,70,68,65,45,33,31,36,32) Count=as.integer(c(5,10,4,5,2,7,3,5,6,2)) mean=c(93.3,93.3,68.2,68.2,68.2,45,33.4,33.4,33.4,33.4) df=data.frame(variable=variable,value=value,Co

我有一个数据框,如下所示:

variable=c("D","D","C","C","C","A","B","B","B","B")
value=c(80,100,70,68,65,45,33,31,36,32)
Count=as.integer(c(5,10,4,5,2,7,3,5,6,2))
mean=c(93.3,93.3,68.2,68.2,68.2,45,33.4,33.4,33.4,33.4)
df=data.frame(variable=variable,value=value,Count=Count,mean=mean)
我可以绘制一个很好的图(其中正方形的大小对应于具有特定x值和y值的观察计数),如下所示:

ggplot(df, aes(variable, value)) + geom_point(aes(size = Count), pch=15) + guides(fill=guide_legend(title="New")) + theme(legend.text=element_text(size=rel(2.3)), legend.title=element_text(size=rel(2.3), face="plain"), legend.position="right", axis.text = element_text(size=rel(2.3)), axis.title = element_text(size = rel(2.3))) + labs(x="Topic", y = "Percentage Grade")
但是,我现在想在四个主题的每个主题上都添加一个水平条,表示平均百分比分数。这些值存储在df$mean中。我想不出如何做到这一点。我尝试过将geom_line()函数与水平线选项一起使用。。。但这似乎是绘制垂直线

ggplot(df, aes(variable, value)) + geom_point(aes(size = Count), pch=15) + guides(fill=guide_legend(title="New")) + theme(legend.text=element_text(size=rel(2.3)), legend.title=element_text(size=rel(2.3), face="plain"), legend.position="right", axis.text = element_text(size=rel(2.3)), axis.title = element_text(size = rel(2.3))) + labs(x="Topic", y = "Percentage Grade") + geom_line(stat = "hline", yintercept = df$mean)

谢谢您……

您可以使用
geom\u段执行此操作:

ggplot(df, aes(variable, value)) + 
    geom_point(aes(size = Count), pch=15) +
    geom_segment(aes(x=variable, y=mean-.1, 
                    xend=variable, yend=mean+.1),
                color="red", size=I(40))

可能@aosmith谢谢。实际上,在那篇文章之后,我对我的上一个语法进行了建模(我使用了与他们类似的geom_line()。然而,不同之处在于我有一个均值向量,它们使用一个函数来计算均值。我不能使用他们使用的相同功能,因为我正在处理每个可能观察的计数,而不是像他们那样单独处理每个观察。但是您是否尝试了答案所建议的使用
geom_errorbar
?您可以将
yintercept=mean
放在
aes
的内部,而不是
yintercept=“mean”
的外部,以使用您的计算值。