2015-04-14 45 views
0

我试图绘制我的data.frame(为方便起见,我们称它们为data$Date,data$x)的两列。绘图时R的极限日期范围

当绘制data$x我想限制自己从2014-01-01以后的数据。做这件事的正确方法是什么?

+0

为方便起见,你能不能让你的榜样重现? –

+1

可重复[如此](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – ROLO

回答

0

你可以先放你Date列日期与strptime,然后你的子集来data.frame只保留日期发布2014年1月1日:

data$Date <- strptime(data$Date, format="%y%y-%m-%d") 
plot(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], las=1, pch=19, xlab="Date post 01/01/2014", ylab="") 

data <- data.frame(Date=c("2013-02-03","2013-12-13","2014-02-02","2014-05-05"), x=1:4, stringsAsFactors=F) 

enter image description here

编辑
如果您需要绘制多个“x”,您可以先使用plot,然后使用points。您可以调整x axisaxis.POSIXct

data <- data.frame(Date=c("2013-02-03", "2013-12-13", "2014-02-02", "2014-05-05", "2015-04-14"), x1=rep(1, 5), x2=rep(2, 5), stringsAsFactors=F) 
data$Date <- strptime(data$Date, format="%y%y-%m-%d") 
plot(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x1[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], las=1, pch=19, col="red", xlab="Date post 01/01/2014", ylab="", xaxt="n", ylim=c(0,3)) 
points(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x2[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], pch=19, col="blue") 
axis.POSIXct(1, at=seq(strptime("2014-02-01",format="%y%y-%m-%d"),strptime("2015-04-01",format="%y%y-%m-%d"), by = "month"), format = "%m/%y") 

enter image description here

+0

谢谢,Cath。如何将密钥添加到图(如果我有多个参数)? – Dinosaur

+0

@Dinosaur,不客气。对不起,但我不明白你的意思是“为剧情添加一个键”,你有什么参数可以超过一个,你能举个例子来帮助我更好地理解你的意思吗? – Cath

+0

对不起,我还不够清楚。例如,如果我想在同一个图上绘制数据$ x1的红色和数据$ x2的蓝色数据$ Date,我怎么能指出哪个图是哪个?另外,如何调整x轴上的“节点”?目前,我在x轴上只有两个,“2014”和“2015”。再次感谢你的帮助! – Dinosaur