2014-05-13 107 views
-1

我想绘制来自4个不同y轴变量的4条线与一个图上的相同x轴变量。我目前使用:从绘图中删除点

plot(df$x1, df$y, 
    lines(smooth.spline(df$x1, df$y), col="red"), 
    main="Decrease over 10 years", 
    ylim = c(0, 10), 
    xlim = c(0,10), 
    xlab="Years", 
    ylab="Percentage", 
    pch="", 
    las = 1 
) 

points(df$x2, df$y, 
     lines(smooth.spline(df$x2, df$y), col="blue") 
points(df$x3, df$y, 
     lines(smooth.spline(df$x3, df$y), col="green") 
points(df$x4, df$y, 
     lines(smooth.spline(df$x4, df$y), col="black") 

然而,当我绘制这个我获得4点期望的曲线,但也沿着x轴“O”点。有没有办法删除这些点(他们不参考数据)?我试过使用pch =“”选项,但是这并不能删除这些点。

谢谢, 马克

+1

你为什么把 “线” 内的'plot'打电话?如果你想要的只是线条,那么只要做'plot(x,y,type ='l')'。但是,我可以保证绘制的任何点都是数据的一部分;你已经强制zxis的限制,所以一些数据可能在轴上“开”。由于您没有提供可复制的数据样本,因此我无法进一步帮助您。 –

+0

或只是'线(x,y)' –

+0

感谢您的答复。 我正在使用直线(smooth.splines(...)),因为我根据y值和四个xi值之间的给定关系人为创建了数据。然而,当我使用type =“l”时,这克服了沿着x轴的点的绘图(这些点不涉及任何数据点,因为我没有数据,其中y = 0(或相对接近零)。 至于如何我的数据是不同于MrFlick生成的数据,我仍然需要抑制绘制点(“o”) 谢谢, 马克 – user3628889

回答

0

我试着用

set.seed(123) 
df<-data.frame(
    x1=sort(rnorm(25, 5, 2)), 
    x2=sort(rnorm(25, 5, 2)), 
    x3=sort(rnorm(25, 5, 2)), 
    x4=sort(rnorm(25, 5, 2)) 
) 
df<-transform(df, y=x1*2-1+rnorm(25)) 

plot(df$x1, df$y, lines(smooth.spline(df$x1, df$y), col="red")) 
points(df$x2, df$y, lines(smooth.spline(df$x2, df$y), col="blue")) 
points(df$x3, df$y, lines(smooth.spline(df$x3, df$y), col="green")) 
points(df$x4, df$y, lines(smooth.spline(df$x4, df$y), col="black")) 

重现你的问题,但我没有看到对剧情有什么异常。你能解释你的数据与我生成的样本有什么不同吗?

sample plot