如何在ggplot2的条形图上使geom_errorbar正确“躲避”?

伦德勒

我正在尝试制作带有错误条的分组条形图。但是,我无法使误差线看起来正确(即比主线更细)和正确定位(在线的中心)。position选项position_dodge()似乎不正确工作,为什么我想不通-在其他类似的问题的例子基础,这应该工作。

我正在R版本3.4.2中运行ggplot2版本3.0.0。

一个最小的工作示例:

d<-data.frame(bin = factor(c(1,2,3,1,2,3)),type = factor(c(1,1,1,2,2,2)), beta = c(10,20,30,40,50,60), se = c(2,2,2,2,2,2))
ggplot(d, aes(x=bin,y=beta,ymin = beta - 1.96* se, ymax = beta+1.96* se)) + 
    geom_bar(aes(fill = type), position = position_dodge2(), stat="identity")  +
    geom_errorbar(position=position_dodge2(.9))

产生:正确位置,太宽正确的位置,但是太宽。使用position_dodge()代替position_dodge2()甚至无法正确定位:

ggplot(d, aes(x=bin,y=beta,ymin = beta - 1.96* se, ymax = beta+1.96* se)) + 
  geom_bar(aes(fill = type), position = position_dodge(), stat="identity")  +
  geom_errorbar(position=position_dodge(.9)) 

甚至更宽,位置错误添加width参数以geom_errorbar破坏版本,position_dodge2()而用则无效position_dodge()

ggplot(d, aes(x=bin,y=beta,ymin = beta - 1.96* se, ymax = beta+1.96* se)) + 
  geom_bar(aes(fill = type), position = position_dodge2(), stat="identity")  +
  geom_errorbar(position=position_dodge2(.9), width= .2)

ggplot(d, aes(x=bin,y=beta,ymin = beta - 1.96* se, ymax = beta+1.96* se)) + 
  geom_bar(aes(fill = type), position = position_dodge(), stat="identity")  +
  geom_errorbar(position=position_dodge(.9), width = .2) 

宽度好,位置错误 宽度好,位置仍然错误

这里发生了什么?我该如何解决?

奥史密斯

如果您fill进入全球范围,aes()那么position_dodge()将按预期工作。或者,您可以将分组变量via添加groupgeom_errorbar()

ggplot(d, aes(x = bin, y = beta, 
              ymin = beta - 1.96*se, ymax = beta+1.96*se, fill = type)) + 
    geom_bar(position = position_dodge(), stat="identity")  +
    geom_errorbar(position=position_dodge(.9), width = .2)

问题position_dodge2()似乎是此GitHub问题中讨论的问题,可以通过padding参数解决请注意,此方法不再有width争论geom_errorbar()

ggplot(d, aes(x = bin, y = beta, 
              ymin = beta - 1.96*se, ymax = beta+1.96*se, fill = type)) + 
    geom_bar(position = position_dodge2(), stat="identity")  +
    geom_errorbar(position = position_dodge2(.9, padding = .6))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在躲避的条形图(ggplot2)中向x轴添加图例文本

ggplot2 和 geom_errorbar() 的问题

使用ggplot2创建躲避的条形图

如何使用ggplot2在条形图上放置标签?

如何在我的ggplot2 2因子条形图上放置标准误差条?

如何在ggplot2地图上绘制条形图

如何在ggplot2中的群集条形图上对齐文本?

R ggplot2 如何在条形图上绘制标准偏差

如何使用geom_errorbar在堆积条形图中堆积误差条?

如何使用ggplot2在R中的每个条形图上在geom_bar上放置标签

ggplot2:geom_text如何在条形图中绘制时间?

如何在ggplot2的geom_text中舍入条形图的数据标签?

如何在条形图上正确放置条形图

ggplot2 geom_text在水平分组条形图上的位置文本

第2部分:如何在ggplot的条形图上的单个条形图中按值正确地对分段进行排序

ggplot2使用位置躲避2时堆叠的带类别和数值的条形图

使用ggplot2为R中的日期绘制geom_errorbar

使用 ggplot2 的 geom_errorbar 时出现“缺少美学错误”

R中的躲避条形图基于使用ggplot2计数年份的列

ggplot2在堆叠的条形图上放置标签

ggplot抖动geom_errorbar?

在ggplot2中使用geom_errorbar会导致“错误:geom_errorbar需要以下美感:ymin,ymax”

缺少值时按组躲避geom_errorbar

R ggplot2条形图,条形图上有圆角

在 ggplot2 中,指定用于 geom_smooth() 置信区间的值(类似于 geom_errorbar)

如何用不同颜色的geom_errorbar绘制ggplot?

ggplot2:如何向上移动x轴,使其可以在水平条形图上任意选择的条形下?

如何在ggplot2(R)的条形图中仅更改一个条形的geom_text的颜色和位置?

如何使用geom_bar在ggplot2中制作连接的条形图?