首页 > 解决方案 > 在数据的平均值处添加一条线,ggplot2

问题描述

我正在尝试添加一条简单的线来在 ggplot2 条形图中显示我的数据的中位数和平均值。

这是我的代码

library(ggplot2)
library(plyr)

data <- c(1,1,1,2,2,2,2,2,2,3,3,4,5)

count_data<- count(data)

mean <- mean(count_data)
med <- median(count_data)
ggplot(count_data) + 
  geom_bar(aes(x=x, y=freq), stat="identity", position="dodge") +
  geom_vline(aes(xintercept=mean)) + 
  #facet_wrap(~Year, nrow=1) + 
  theme_classic()

我确实看到了我的数据,但 vline 没有显示出来。你知道有什么问题吗?

标签: rggplot2bar-chartvline

解决方案


我假设你想要平均/中值频率,因为你已经创建了count_data. 为此,我freq在创建meanand时明确调用了变量med。因此,下面的条形图上有两条线。

如果你真的想要 的平均值/中位数data,那么它应该只是mean(data),例如。

data <- c(1,1,1,2,2,2,2,2,2,3,3,4,5)

count_data<- plyr::count(data)

mean <- mean(count_data$freq)
med <- median(count_data$freq)
ggplot(count_data) + 
  geom_bar(aes(x=x, y=freq), stat="identity", position="dodge") +
  geom_vline(aes(xintercept = mean)) + 
  geom_vline(aes(xintercept = med)) +
  #facet_wrap(~Year, nrow=1) + 
  theme_classic()

推荐阅读