我整天都在寻找帮助的问题。但答案并不符合我的目的(或者我无法实现)。
好吧,我正在用ggplot2做一个折线图来比较一些变量,但这个变量是线性的并且在同一个y位置保持不变。其中两个重叠,我无法堆叠它们。我试过了dodge_position,但它移开了线条;我试过了position="stack"
,但确实如此
将线条分开,我尝试了抖动,但效果不是一个有效的解决方案。
抖动
堆栈
Dodge_Position
这是我一直在使用的代码:
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")
有没有办法以最小距离堆叠线条,就像在这张图片中一样?
编辑:使用dput,我得到了这个(http://www.beetxt.com/s95/)。
答案 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)]