R:通过x轴的值改变斜率的简单图

时间:2017-05-01 10:46:09

标签: r plot

我是R的新手,希望有人可以帮助我。我想弄清楚如何绘制一个非常简单的图(使用plot()):

y轴应为ay <- c(-1,1),x轴应为ax <- c(0:6)。我有一个向量v1<-c(0,-0.1,-0.3,-0.6,-0.2,-0.4, 0.2),它为x轴上的每个段提供斜率(即在0和1之间,斜率为-0.1,从1移动到2,斜率为-0.3,依此类推)。

我只需要在x轴上绘制一条从0到6的线,并在v2给出的线段之间有斜率。

此外,应该有一条单独的直线,斜率-0.5从0开始,即同一图中的abline(0,-0.5)

这应该是非常简单的事情,但我无法做到这一点。提前谢谢!

2 个答案:

答案 0 :(得分:2)

这个怎么样?

x <- 0:6
v1 <- c(0,-0.1,-0.3,-0.6,-0.2,-0.4, 0.2)

请注意,斜率由y - 值与x - 值之差的差值给出。由于x中的每个连续条目的v1 - 值的差异始终为1,因此它基本上包含y - 值的差异。将v1中的第一个条目设为y(x=0)(请参阅下面的注释),cumsum(v1)为您提供y - 您需要提供给plot的值。< / p>

y <- cumsum(v1)

plot(x, y, type="l")

注意v1中有七个斜率值,但从0到6只有六个差异。如果算一算,那就是0-1,1-2,2-3 ,3-4,4-5和5-6,它们给出了六个不同之处。如果第一个条目应该是斜率,则需要重新考虑x的范围。

答案 1 :(得分:1)

我还没有完全理解你的问题。在我看来,x轴上的范围应为(0,6) 无论如何,请参阅下面的代码。希望它可以帮到你。

v1 <- c(-0.1,-0.3,-0.6,-0.2,-0.4, 0.2)   
plot(0:6, 1+c(0,cumsum(v1)), type="o", ylim=c(-1,1))
abline(v=0:6, h=seq(-1,1,by=0.1), col="gray", lty=3)

enter image description here