我有一个数据集
这就是我正在做的事情
b<- read.table("file_name.out")
EXP <- 2
names(b) <- paste("name_",1:30)
gg2 <- subset((aggregate(cbind(name_4)~name_1+name_2+name_3,b, FUN=mean)),(aggregate(cbind(name_4)~name_1+name_2+name_3,b, FUN=mean))$name_1 == c(1:EXP))
plot_exp <-
function(i){
dat <- subset(gg2,name_1 == i )
ggplot(dat,aes(x=name_3, y=name_4, fill = name_2)) +
geom_point(aes(color = name_2),size = 3) + geom_smooth(stat= "smooth" , alpha = I(0.01))
}
ll <- lapply(seq_len(EXP), plot_exp)
do.call(grid.arrange, ll)
这是两个图表,一个在另一个之下。
- 我想为两个x轴分别设置不同的Y轴。
- 另外我想在这里明确地命名两个图:ex:EXP1,EXP2
- 我想为不同的name_2列设置不同的颜色(正如您所看到的,为所有name_2不同的条目绘制了图表)
- 再次请帮助命名基于name_2列的图例,以及如何在外部更改x和y轴名称意味着在设置之后在ggplot命令之外。
先谢谢。
答案 0 :(得分:1)
你在一个问题中提出了很多子问题。最好隔离你的问题。我将解决我能理解的问题。
我不确定你想要单独的情节。对于您的第一个问题,factet_grid
似乎是一个不错的选择。我还添加了一个labeller=
来标记幻灯片“EXP1”和“EXP2”。此外,如果您希望将name_2视为分类变量,则应将其转换为因子。如果您想为每个name_2值添加一行,则最好使用geom_line
而不是geom_point/geom_smooth
组合
gg2$name_2<-factor(gg2$name_2)
ggplot(gg2,aes(x=name_3, y=name_4, fill = name_2)) +
geom_line(aes(color = name_2),size = 1) +
facet_grid(name_1~., labeller=function(x,y) {paste0("EXP",y)})