在ggplot中同时绘制水平和垂直点范围

jlh*_*ard 5 r ggplot2

有没有办法在同一个图上同时绘制水平垂直点范围ggplot.我理解geom_pointrange(...)绘制垂直点范围,并且可以生成水平点范围coord_flip(...),但我有兴趣将两者放在同一个图上.

set.seed(1)
df <- data.frame(x=sample(1:10,10),y=sample(1:10,10), x.range=1, y.range=2)
library(ggplot2)
ggplot(df) +
  geom_pointrange(aes(x=x, y=y, ymin=y=y.range, ymax=y+y.range))
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样的东西:

ggplot(df) +
  geom_pointrange(aes(x=x, y=y, 
                      ymin=y-y.range, ymax=y+y.range, 
                      xmin=x-x.range, xmax=x+x.range))
Run Code Online (Sandbox Code Playgroud)

这当然产生与上面相同的输出,因为忽略了xminxmax参数.显然,有(是)函数geom_hpointrange(...)ggExtra,但这个包已经被尽可能我可以告诉拉.

Hen*_*rik 8

geom_errorbarh你在找什么?

ggplot(data = df, aes(x = x, y = y)) +  
  geom_pointrange(aes(ymin = y - y.range, ymax = y + y.range)) +
  geom_errorbarh(aes(xmax = x + x.range, xmin = x - x.range, height = 0))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述