繁体   English   中英

R ggplot2从点到y = 0画线

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM