我的名字是贾科莫,我只是一个R初学者。 我试图制作一个由两个趋势线覆盖的箱线图,每个我绘制的一个等级。
Google搜索我发现了许多例子,比如这样 ggplot - Add regression line on a boxplot with binned (non-continuous) x-axis 但它对我不起作用。
最后我尝试了两种不同的方式,第一种方式是:
plotSerie <- ggplot(fileIn, aes(y=S1_VH)) +
geom_boxplot(aes(x=as.factor(DOY), fill = X2cycles)) +
geom_smooth(method="loess", se=TRUE, aes(x=as.integer(DOY), color=X2cycles)) +
scale_fill_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
scale_color_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
labs(x = "DOY", y = "VH")+
theme(axis.text=element_text(size=20),
axis.title=element_text(size=20,face="bold"),
legend.text=element_text(size=20),
legend.title=element_text(size=25))+
ylim(-24,-14)
专业人士:两个趋势线都正确显示, 缺点:boxplot和趋势线没有重叠
第二种方式是
plotSerie <- ggplot(fileIn, aes(x=factor(DOY), y=S1_VH, fill = X2cycles))+
geom_boxplot() +
geom_smooth(method="loess", se=TRUE, aes(group=1, color=X2cycles)) +
scale_fill_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
scale_color_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
labs(x = "DOY", y = "VH")+
theme(axis.text=element_text(size=20),
axis.title=element_text(size=20,face="bold"),
legend.text=element_text(size=20),
legend.title=element_text(size=25))+
ylim(-24,-14)
专业人士:boxplot和一个趋势线被正确覆盖, 缺点:只绘制了一条趋势线
你能帮帮我吗? 非常感谢你答案 0 :(得分:0)
我解决了这个问题。无论如何,谢谢你。
plotSerie <- ggplot(fileIn, aes(x=factor(DOY), y=S1_VH, fill = X2cycles))+
geom_boxplot() +
geom_smooth(method="loess", se=TRUE, aes(group=X2cycles, color=X2cycles)) +
scale_fill_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
scale_color_manual(values=c("ShortCycle"= "brown", "LongCycle" = "grey"),
name="Rice Cycles")+
labs(x = "DOY", y = "VH")+
theme(axis.text=element_text(size=20),
axis.title=element_text(size=20,face="bold"),
legend.text=element_text(size=20),
legend.title=element_text(size=25))+
ylim(-24,-14)
答案 1 :(得分:0)
我为我的拖延道歉。我改变了我的脚本,以便在我的情节中使用连续的X.
plotSerie <- ggplot(fileIn, aes(x=DOY, y=S1_VH, fill = pass, group=DOY))+
geom_boxplot() +
geom_smooth(method="loess", se=TRUE, aes(group=pass, color=pass)) +
非常感谢