我正在尝试向ggplot条形图添加垂直线(x轴是连续的)。一个版本按预期工作,第二个版本产生错误。我不明白为什么。
基本上我有一个带有一些数字的向量(" alter"),我想绘制值的频率:
alter <- c(19, 23, 24, 31, 32, 43, 51, 54, 54)
alter.table <- table(alter) # add frequencies
alter.table.df <- data.frame(alter.table)
alter.table.df$alter <- as.numeric(as.character(alter.table.df$alter)) # convert from factor to numeric
alter.table.df$Freq <- as.numeric(alter.table.df$Freq)
alter.mean <- mean(alter, na.rm = T)
alter.md <- median(alter, na.rm = T)
library(ggplot2)
版本A) 工作:
p <- ggplot(alter.table.df, aes(x = alter, y = Freq)) + geom_bar(stat = "identity")
p
p2 <- p + geom_vline(xintercept = alter.mean, colour = "red") + geom_vline(xintercept = alter.md, colour = "blue")
p2
版本B)不工作/产生错误:
px <- ggplot(alter.table.df, aes(x = alter, y = Freq)) + geom_bar(stat = "identity") + geom_vline(xintercept = 37, colour = "red") + geom_vline(xintercept = 32, colour = "blue")
因此,如果我将geom_vlines分别添加到新的情节中,它就会显示出来。如果我试图将它全部放在一个图中,那就失败了。我不明白这是什么问题。
非常感谢任何帮助。
谢谢! 塞巴斯蒂安
答案 0 :(得分:2)
无需拨打geom_vline
两次。你可以给一个值向量作为xintercept
Like
px <- ggplot(alter.table.df, aes(x = alter, y = Freq)) + geom_bar(stat =
"identity") + geom_vline(xintercept = c(37,32), colour = "red")