使用ggplot2在直方图上添加箭头

时间:2015-10-11 21:50:24

标签: r graphics ggplot2

尝试使用ggplot2向堆叠直方图添加箭头时遇到了一些问题。

首先,我使用

创建了数据框
set.seed(1234)

df <- data.frame(
  sex=factor(rep(c("F", "M"), each=200)),
  weight=round(c(rnorm(200, mean=55, sd=5), rnorm(200, mean=65, sd=5)))
)

然后我运行以下代码以获得带有指向特定值的箭头的图表

p <- ggplot(df, aes(x=weight)) +
  geom_histogram(aes(fill=sex, color=sex), position="stack", alpha=0.5, binwidth=5) +
  stat_bin(aes(y=..count.. + 2 , label=..count..), drop="TRUE", geom="text", binwidth=5)

p + geom_segment(aes(x=52, xend=52, y=30, yend = 0), colour="darkblue", size=1, arrow = arrow(length = unit(0.5, "cm")))

但是我收到以下警告信息: ymax未定义:使用y调整位置

然后我将以前的代码修改为:

p <- ggplot(df, aes(x=weight, ymax=..count..)) +     geom_histogram(aes(fill=sex, color=sex), position="stack", alpha=0.5, binwidth=5) + stat_bin(aes(y=..count.. + 2 , label=..count..), drop="TRUE", geom="text", binwidth=5)

p + geom_segment(aes(x=52, xend=52, y=30, yend = 0), colour="darkblue", size=1, arrow = arrow(length = unit(0.5, "cm")))

但是在这种情况下我收到以下错误消息: eval中的错误(expr,envir,enclos):object&#39; count&#39;找不到

我哪里错了? 提前感谢您提供的所有帮助

0 个答案:

没有答案