首页 文章

用概率区间绘制离散预测 - ggplot2

提问于
浏览
1

我需要在ggplot2中用概率区间绘制一些离散预测,但是我遇到了一些问题 .

我有以下data.frame

city    pred    min.80    max.80
BH      100     50        150
RJ      120     80        140
SP      90      80        100

我想要一个y轴上城市的图和x轴上的预测值 . 对于y的每个离散值,应该有一个水平条,其范围是min.80和max.80值 . 我的想法是使用 ggplot2 来自 ggplot2 来做这件事 .

我尝试了下面的代码,但问题是我将离散变量转换为连续变量以便绘制它,并且我在标签上丢失了它们的值 .

> ggplot(df) + geom_rect(aes(xmin=min.80, xmax=max.80, ymin=as.numeric(city)-0.4,
+ ymax=as.numeric(city)+0.4))

还有另一种方法吗?

2 回答

  • 4

    我建议你使用geom pointrangecrossbar

    ggplot(df, aes(x=city)) + 
      geom_pointrange(aes(ymin=min.80, ymax=max.80, y=pred)) +
      coord_flip()
    

    enter image description here

    ggplot(df, aes(x=city)) + 
      geom_crossbar(aes(ymin=min.80, ymax=max.80, y=pred)) +
      coord_flip()
    

    enter image description here

  • 0

    我想你想把y轴保持为一个因子( y=city ) . 这种(估计间隔)数据可能最好用 geom_pointrange 之类的东西完成 . 毕竟,矩形的"height"没有解释 .

    如果您必须将错误栏设置为水平,我之前已经通过两种方式完成了此操作:

    • 使用 coord_flip()

    • 上次我尝试 coord_flip() 时,它有点受限,所以我有时也会通过将 geom_hline()geom_point() 相结合来重新创建 geom_pointrange() 功能 .

相关问题