在R中绘制不同的数据帧

时间:2014-08-18 16:30:43

标签: r

我有一个多个数据帧,每个数据帧都有一个x和y列。 所有数据帧的x值都相同,但y值不同。

I wish plot on a single graph the y values for all dataframes,
corresponding to each x value.

我尝试过使用绘图功能,它似乎没有提供这样的功能。

请帮帮我。 提前谢谢!

3 个答案:

答案 0 :(得分:2)

使用Roland的数据:

set.seed(42)
DF1 <- data.frame(x=1:5, y=rnorm(5))
DF2 <- data.frame(x=1:5, y=rnorm(5))
DF3 <- data.frame(x=1:5, y=rnorm(5))

尝试:

ggplot()+
    geom_point(data=DF1, aes(x,y), color='red')+
    geom_point(data=DF2, aes(x,y), color='blue')+
    geom_point(data=DF3, aes(x,y), color='green')

enter image description here

答案 1 :(得分:1)

#some data
set.seed(42)
DF1 <- data.frame(x=1:5, y=rnorm(5))
DF2 <- data.frame(x=1:5, y=rnorm(5))
DF3 <- data.frame(x=1:5, y=rnorm(5))

#merge the data
dat <- Reduce(function(X, Y) merge(X, Y, by="x"), list(DF1, DF2, DF3))

#make it a matrix
mat <- as.matrix(dat)

#plot
matplot(mat, pch=1)

答案 2 :(得分:1)

使用Roland的一个简单的plot + points方法:

#some data
set.seed(42)
DF1 <- data.frame(x=1:5, y=rnorm(5))
DF2 <- data.frame(x=1:5, y=rnorm(5))
DF3 <- data.frame(x=1:5, y=rnorm(5))

制作第一张图:

# Finding the y limits
max.y = max(DF1$y,DF2$y,DF3$y)
min.y = min(DF1$y,DF2$y,DF3$y)


plot(x = DF1$x, y = DF1$y,pch = 19,xlab = "X", ylab = "Y",ylim = c(min.y,max.y)

添加其他要点:

points(x = DF2$x, y = DF2$y,col = "blue",pch = 19)
points(x = DF3$x, y = DF3$y,col = "red",pch = 19)

enter image description here