在 R 中叠加两个 qplots(平滑和置信区间)

overlay two qplots (smoother and confidence intervals) in R

我想绘制两组数据并显示数据、每组的平滑度和置信区间,但两组都在一张图中。

plotdata <- data.frame(x=1:10, y1=runif(10, min=0, max=10), y2=runif(10, min=10, max=20))
qplot(x, y1, data=plotdata, geom=c("point", "smooth"), method="rlm")
qplot(x, y2, data=plotdata, geom=c("point", "smooth"), method="rlm")

有没有办法将这两个 qplots 结合起来,或者提取 qplot 信息并用 ggplot 绘制它? 到目前为止我找到的所有解决方案都只适用于单线、点等,而不适用于置信区间。谢谢!

你可以用ggplot绘制相同的图

例如:第一个情节:

plotdata %>% ggplot( aes(x, y1)) + geom_point() + geom_smooth(method = "rlm")

从现在开始你可以玩更灵活的 ggplot

您可以使用包 tidyr 中的 gather 将数据框转换为长格式。这个新数据框适合与 ggplot.

一起使用
library(tidyr)
library(ggplot2)
library(MASS)

pd <- gather(plotdata, set, value, -x)

ggplot(pd, aes(x = x, y = value, colour = set, shape = set)) +
  geom_point() +
  geom_smooth(method = rlm)

该图显示了 y1y2 的数据。