示例数据:
set.seed(245)
cond <- rep( c("control","treatment"), each=10)
xval <- round(10+ rnorm(20), 1)
yval <- round(10+ rnorm(20), 1)
df <- data.frame(cond, xval, yval)
df$xval[cond=="treatment"] <- df$xval[cond=="treatment"] + 1.5
我想要&#34;治疗&#34;条件被绘制为一条线和&#34;控制&#34;将数据绘制为散点图。到目前为止,我找到了一个工作,我将它们指定为两条线,但选择将控制线标记为“空白”。在scale_linetype_manual中:
plot <-ggplot(data=df, aes(x=xval, y=yval, group=cond, colour=cond))+
geom_line(aes(linetype=cond))+
geom_point(aes(shape=cond))+
scale_linetype_manual(values=c('blank', 'solid'))
但是,必须有一种更直接的方法将控件绘制为散点图并将处理绘制为线图。最后,我想从治疗线上删除geom_point。它现在的方式,它将从控制中删除它,以及让我没有任何控制。
任何见解都会有所帮助。谢谢。
答案 0 :(得分:2)
我希望我能正确理解你。您可以对subset
使用“{1}}数据”geom_line
,为subset
使用“{1}}数据。
在子集化之后,geom_point
(“治疗”)只有一个“cond”,geom_line
只有一个“cond”(“控制”)。因此,我已经分别删除了“cond”与geom_point
,aes
和colour
之间的linetype
映射。您可能希望将这些美学设置为所需的值。同样,此解决方案中不需要shape
。
group
来自OP的评论后,
更新,“现在,如果我的数据实际上有三个”条件“,其中2个条件将被绘制为线条,另外1个是散点图。”
ggplot(data = subset(df, cond == "treatment"), aes(x = xval, y = yval)) +
geom_line() +
geom_point(data = subset(df, cond == "control"))