【问题标题】:Error bars show through open symbol误差线通过开放符号显示
【发布时间】:2011-10-27 08:37:14
【问题描述】:

我有一个带有稍微偏移的点对的情节。每对点都有相关的误差线。我已指定该对中第一个点的符号与第二个点的符号不同(封闭圆与开放圆)。我希望它不会通过打开的符号显示错误栏。

这是一个模拟数据集:

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))

剧情如下:

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

感谢您提供的任何帮助!

【问题讨论】:

    标签: r ggplot2 symbols


    【解决方案1】:

    我想不出一种方法来提出“开放”点,而不是让错误栏显示低谷。这样做的唯一方法是用与背景相同的颜色填充这些点,但是您的网格线将无法通过该点看到。

    为此,请将fill 美学映射到类型,并使用填充颜色grey90 指定scale_fill_manual,这是theme_grey 设置:

    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,所以我把填充改成了白色。
    【解决方案2】:

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

    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")
    

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多