我有一个3列的数据框 . 我正在用数字变量(Prob)绘制因子(X) . 我想从每个点到y = 0线画一条线 . 在阅读本文R ggplot vertical and horizontal line intercept at center之后,我尝试使用下面的代码执行此操作 . 结果不是我的预期 . 我认为这可能与我的x轴变量是一个因素有关 . 有没有更好的方法可以做到这一点?
pmf.data = as.data.frame(c(0,1,2,"NA"))
pmf.data$Prob = c(0.4921875, 0.015625, 0.4921875, 0)
colnames(pmf.data)[1] = c("X")
pmf.data$label = c("P0", "P1", "P2", "PNA")
ggplot(data=pmf.data, aes(x=X, y=Prob)) + geom_point() +
geom_text(aes(label = label), hjust = 2) +
geom_segment(aes(xend=Prob, yend=0), color="blue") +
ylab(expression(bold(paste(f[(X)](x))))) +
ggtitle("Multinomial pdf for X")
1 回答
如果你需要一条到y = 0的垂直线,那么
geom_segment()
内的xend=
值应该与x值相同 - 即X
.使用
geom_bar()
可以获得与geom_segment()
相同的效果,并将width=
设置为较低的值 .