0

我有很多data.frame,每个都包含很多列。说我的第一个 data.frame col1=a, col2=b,col3=c

我想绘制 x-axis=b/a 和 y-axis=a。我设法绘制它们(散点图)

plot (dataframe$b/dataframe$a, dataframe$a, xlim=...,ylim=..) 

现在,我需要获取散点数据的模式(我不想要线性回归,因为 x 和 y 都在变化)。我确实使用了该命令loess(..),并且能够显示该模式。

lo_smooth<-loess(x,y, f=number, iter=number)

如何将置信区间 (CI) 添加到图表中?我的目标是检查两个 data.frame 是否在彼此的 CI 内。

4

1 回答 1

0

使用您的尝试的解决方案(干得好!)加上您的澄清

一些虚拟数据

dppm <- data.frame(a = runif(100, 1, 100), b = runif(100,1, 100))
dppm_2 <- data.frame(a = runif(100, 1, 75), b = runif(100,1,75))
dppm_3 <- data.frame(a = runif(100, 1,50), b = runif(100,1,50))

使用 reshape2 将这些数据融合到单个数据框库中(reshape2)

data_list <- list(dppm1 = dppm, dppm2 = dppm_2, dppm3 = dppm_3)
all_data <- melt(data_list, id.vars = c('a','b'))

这个单一的数据框有一列L1是标识符(在data_list.

head(all_data)
          a        b    L1
## 1 83.202896 36.94026 dppm1
## 2 42.618987 11.23863 dppm1
## 3 29.505029 11.91742 dppm1
## 4 63.569487 59.07395 dppm1
## 5 94.499772 47.32779 dppm1
## 6  4.535389 64.11570 dppm1

然后我们可以通过这个标识符绘制这个组合的数据集和颜色。我们还将fill平滑设置为相同的标识符,以便 CI 以相同的方式着色。

ggplot(all_data,aes(x = b/a, y = a, colour = L1)) + 
  geom_point() + 
  stat_smooth(method = "loess", se = TRUE,level = 0.90, aes(fill = L1))+
  coord_cartesian(ylim = c(0, 100))

在此处输入图像描述

于 2012-07-24T01:25:39.507 回答