R 错误条通过打开符号显示

R 错误条通过打开符号显示,r,ggplot2,symbols,R,Ggplot2,Symbols,我有一个点对稍微偏移的图。每对点都有相关的错误条。我已指定该对中第一个点的符号不同于第二个点的符号(闭合圆与开放圆)。我希望错误条不会通过开放符号显示 以下是模拟数据集: x = runif(4,-2,2) x_1 = runif(4,-1,3) dfr <- data.frame( x = c(x, x_1), y = rep(c("A","B","C","D"), 2), upper = c(x+2, x_1+1), lower = c(x-2, x_1-2), type =

我有一个点对稍微偏移的图。每对点都有相关的错误条。我已指定该对中第一个点的符号不同于第二个点的符号(闭合圆与开放圆)。我希望错误条不会通过开放符号显示

以下是模拟数据集:

x = runif(4,-2,2)
x_1 = runif(4,-1,3)
dfr <- data.frame(
 x = c(x, x_1),
 y = rep(c("A","B","C","D"), 2),
 upper = c(x+2, x_1+1),
 lower = c(x-2, x_1-2),
 type = rep(c("alpha", "beta"), each = 4))


谢谢你能提供的任何帮助

为什么不直接使用
颜色
,如下面修改的代码所示。它也会填满黑色的圆圈。不确定这是否可以接受

ggplot(dfr,aes(x=y,y=x,colour=type)) + 
    geom_point(size=8,position=dodge) +
    geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) + 
    scale_colour_manual(values = c('gray','black')) +
    coord_flip() + 
    opts(legend.position="none")

我想不出一种方法,既能“打开”一个点,又能不让错误条显示出来。这样做的唯一方法是用与背景相同的颜色填充点,但是通过该点将看不到网格线

为此,将
fill
美学映射到type,并使用填充颜色
grey90
指定
scale\u fill\u manual
,这是
theme\u gray
设置:

ggplot(dfr,aes(x=y,y=x,colour=type, fill=type)) + 
    geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) + 
    geom_point(size=8,aes(shape=type),position=dodge) +
    scale_colour_manual(values = c('gray','black')) +
    scale_fill_manual(values=c('grey', 'grey90')) +
    scale_shape_manual(values = c(19,21)) +
    coord_flip() + 
    opts(legend.position="none")

效果很好,谢谢!我正在使用theme_bw,所以我将填充改为白色。
ggplot(dfr,aes(x=y,y=x,colour=type, fill=type)) + 
    geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) + 
    geom_point(size=8,aes(shape=type),position=dodge) +
    scale_colour_manual(values = c('gray','black')) +
    scale_fill_manual(values=c('grey', 'grey90')) +
    scale_shape_manual(values = c(19,21)) +
    coord_flip() + 
    opts(legend.position="none")