![](/img/trans.png)
[英]Problems with ggplot2: draw a vertical line between x axis (from y=0) to the maximum point at each x value
[英]R ggplot2 draw line from point to y=0
我有一个3列的数据框。 我正在用数字变量(Prob)绘制因子(X)。 我想从每个点到y = 0线画一条线。 在中心阅读了这篇文章R ggplot垂直和水平线截距后,我试着用下面的代码做这个。 结果不是我的预期。 我认为这可能与我的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")
如果你需要一条到y = 0的垂直线,那么geom_segment()
xend=
值应该与x值相同 - 即X
。
ggplot(data=pmf.data, aes(x=X, y=Prob)) + geom_point() +
geom_text(aes(label = label), hjust = 2) +
geom_segment(aes(xend=X, yend=0), color="blue") +
ylab(expression(bold(paste(f[(X)](x))))) +
ggtitle("Multinomial pdf for X")
与geom_segment()
相同的效果可以通过geom_bar()
和设置width=
某个低值来实现。
ggplot(data=pmf.data, aes(x=X, y=Prob))+geom_bar(stat="identity",width=0.01)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.