用不同的颜色在同一个x上绘制两个y?

时间:2012-04-13 06:46:46

标签: r

temp1<- data.frame(x =(1:10), y=(1:10)^2)

temp2<- data.frame(x =(1:10), y=(1:10)^3)

# plot(temp1$x, with both temp1$y and temp2$y; 
# want each represented by a different color)

可以这样做吗?

4 个答案:

答案 0 :(得分:3)

plot(temp2, type="l", col="green")
lines(temp1, col="red")

答案 1 :(得分:2)

matplot(temp1$x, cbind(temp1$y, temp2$y), t="l", lty=1, col=c("red", "blue"))

library(ggplot2)
qplot(x, y, colour=which, geom="path", data=lattice::make.groups(temp1, temp2))

答案 2 :(得分:1)

或者,您可以使用ggplot2实现此目的。假设您的数据集如下所示:

x      y   category
1      3   A
3.2   4   B

您可以使用以下方法绘制两条不同颜色的线条:

ggplot(aes(x=x, y=y, color=category), data = dat) + geom_line()

答案 3 :(得分:0)

是的,确实如此。请参阅?plot和颜色的col(颜色)参数。

至于将它们同时放在相同的图上,您可以使用lines / points(在现有情节上绘制)或查看?parnew选项。

特别是,par(new=TRUE) 不会清理当前的绘图设备,允许您在顶部绘图(有点反直觉,我知道)。

所以:

# plot temp1 y vs x in blue
plot(y~x, temp1, col='blue')

# draw the next plot on the same plot
par(new=TRUE)

# plot temp2 y vs x in red, on the SAME plot (new=TRUE)
plot(y~x, temp2, col='red')

如果您想使用lines / points,而不是par(new=TRUE)和第二plot,请执行lines(y~x,temp2,...)