我正在构建一个绘图,其中我放置了点和错误栏,其中一个坐标是连续数值,另一个坐标来自因子:
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)
正如你所看到的那样,线条重叠,所以我想稍微向上/向下移动它们(类似于jitter
,但它可以是固定的距离)。但是,如果我尝试使用y
修改geom_errorbarh
中的y=gene+0.01
,我会收到错误:In Ops.factor(gene, 0.01) : ‘+’ not meaningful for factors
。
(P.S。随意纠正标题,使其更具信息性 - 我的英语不是很好,对不起)
答案 0 :(得分:0)
包ggstance
(请参阅the github repository)是水平geoms的ggplot2扩展。它允许垂直躲避。
通过devtools::install_github("lionel-/ggstance")
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)