使用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范围超出了我绘制的值。
有人可以帮忙解决这个问题吗? 非常感谢您的支持......
问候。
答案 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')
答案 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)