在R中绘制同一图表中的2条曲线

时间:2013-02-12 08:56:12

标签: r graph plot

使用R,我需要在同一图表中绘制2条曲线。因此,我必须绘制x1与y1和x2与y2的关系。这里“x1”是随机但已知的数字,范围为0到12; “x2”是随机但已知的数字,范围为0到9;类似地,y1和y2的一些其他已知范围。

我使用了以下代码:

d<-read.csv("ni1.csv")       # Reading in the data
x1<-d[,1]
y1<-d[,2]

d2<-read.csv("ni2.csv")
x2<-d2[,1]
y2<-d2[,2]

plot(x1,y1,pch="*", col='blue',xlim=c(0, 12), ylim=c(0,1300),main='Load Vs. Extension   Curves',xlab='Extension', ylab='Load')
par(new=TRUE)
plot(x2, y2, pch="*", col= 'red',xlim=c(0, 9), ylim=c(0,1400), axes= FALSE, xlab='', ylab='' )

现在的问题是虽然我得到的是x1与y1的正确曲线,但x2与y2的曲线在不合适的范围内。也就是说,x2与y2的x范围超出了我绘制的值。

有人可以帮忙解决这个问题吗? 非常感谢您的支持......

问候。

3 个答案:

答案 0 :(得分:3)

请考虑使用points。将plot(x2, y2, ...)替换为:

points(x2, y2, pch="*", col= 'red')

答案 1 :(得分:3)

另一种方法是使用par(new=TRUE)将两个不同的图叠加在一起。

vv <- ts(c(3875, 4846, 5128, 5773, 7327,
                6688, 5582, 3473, 3186,
                 rep(NA, 51))
plot(drunkenness, lwd=3, col="grey", ann=FALSE, las=2)
par(new=TRUE)
plot(nhtemp, ann=FALSE, axes=FALSE,col='blue')

enter image description here

答案 2 :(得分:0)

您可以使用ggplot2包,但这需要您将数据重新排序到一个数据框中,并使用额外的列指定类别。

library(ggplot2)
d <- read.csv('ni1.csv',header=T)
d2 <- read.cv('ni2.csv',header=T)
#assuming header names are ´x´ and ´y´ 
df <- rbind(d,d2)
df$labels[(length(d[,1])+1):length(df[,1])] <- 'ni2'
df$labels[1:length(d[,1])] <- 'ni1'
qplot(x,y,data=df,geom='line') + facet_wrap(~labels)