在x轴上重叠的线ggplot2 ...抖动没有取得任何好的结果

时间:2016-06-26 12:44:53

标签: r ggplot2

我整天都在寻找帮助的问题。但答案并不符合我的目的(或者我无法实现)。

好吧,我正在用ggplot2做一个折线图来比较一些变量,但这个变量是线性的并且在同一个y位置保持不变。其中两个重叠,我无法堆叠它们。我试过了dodge_position,但它移开了线条;我试过了position="stack",但确实如此 将线条分开,我尝试了抖动,但效果不是一个有效的解决方案。

抖动

jitter

堆栈

stack

Dodge_Position

dodge

这是我一直在使用的代码:

ggplot(aa, aes(x=Time, y=measurement, colour = condition)) + 
  geom_line() + 
  labs(title='Title', x='Time', y='Var', colour="Condition") + 
  theme(plot.title = element_text(face="bold",vjust=1)) +
  theme(axis.title.x = element_text(face="bold")) + 
  theme(axis.title.y = element_text(face="bold")) 


 #####With Position Jitter###
geom_line(position=position_jitter(h=0.003))

#####With Position Dodge###
geom_line(position=position_dodge(width=50))

####With Position Stack####
geom_line(position="stack")

有没有办法以最小距离堆叠线条,就像在这张图片中一样?

a

编辑:使用dput,我得到了这个(http://www.beetxt.com/s95/)。

1 个答案:

答案 0 :(得分:1)

每组抖动数据怎么样?像这样的东西

jit <- 0.1
aa$measurement2 <- unlist(
  tapply(aa$measurement, aa$condition, function(x){
    x + runif(1,-jit, jit)
}))

ggplot(aa, aes(x=Time, y=measurement2, colour = condition)) + 
  geom_line() + 
  labs(title='Title', x='Time', y='Var', colour="Condition") + 
  theme(plot.title = element_text(face="bold",vjust=1)) +
  theme(axis.title.x = element_text(face="bold")) + 
  theme(axis.title.y = element_text(face="bold")) 

要使用固定偏移而不是随机偏移,请使用类似

的内容
aa$measurement2 <- aa$measurement + c(-0.05, -0.05, 0.05, 0.05)[ as.factor(aa$condition)]