无法修改绘图元素的位置,因为它取自一个因子

时间:2016-09-29 19:19:23

标签: r ggplot2

我正在构建一个绘图,其中我放置了点和错误栏,其中一个坐标是连续数值,另一个坐标来自因子:

test <- read.table(header=T, text='
group gene val
  A   gene1 1
  B   gene1 1.1
  A   gene2 2.5
  B   gene2 2.4
  A   gene3 0.5
  B   gene3 0.6')

ggplot(data=test,aes(x=val,y=gene,color=group))+
  geom_point(aes(color=group))+
  geom_errorbarh(aes(xmin=val-0.2,xmax=val+0.2),height=0.1,size=1)

sample plot

正如你所看到的那样,线条重叠,所以我想稍微向上/向下移动它们(类似于jitter,但它可以是固定的距离)。但是,如果我尝试使用y修改geom_errorbarh中的y=gene+0.01,我会收到错误:In Ops.factor(gene, 0.01) : ‘+’ not meaningful for factors

(P.S。随意纠正标题,使其更具信息性 - 我的英语不是很好,对不起)

1 个答案:

答案 0 :(得分:0)

ggstance(请参阅the github repository)是水平geoms的ggplot2扩展。它允许垂直躲避。

通过devtools::install_github("lionel-/ggstance")

从github安装
library(ggstance)

pos = position_dodgev(height = .5)

ggplot(data = test, aes(x = val, y = gene, color = group))+
    geom_point(position = pos)+
    geom_errorbarh(aes(xmin = val-0.2, xmax = val+0.2), 
                width = .25, size = 1, position = pos)