0

使用 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 范围超出了我绘制的值。

任何人都可以帮助解决这个问题吗?非常感谢您的支持...

问候。

4

3 回答 3

4

另一种方法是简单地将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')

在此处输入图像描述

于 2013-02-12T13:26:44.450 回答
3

考虑points改用。将您的替换plot(x2, y2, ...)为:

points(x2, y2, pch="*", col= 'red')
于 2013-02-12T09:07:51.147 回答
1

您可以使用 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)
于 2013-02-12T09:25:30.643 回答