R段功能有间隔

时间:2014-06-24 21:24:22

标签: r intervals segments

在我特定问题的背景下,我无法理解基本图形中的段功能。

x <- 0:1000
y <- c(0, 40000, 80000) 

现在我想在y = 0时绘制一条从0到200的线的图。另一条线从200到500,y = 40000,最后一条线从500到1000,y = 80000。

plot(x,y,type="n")
segments(0,0,200,40000,200,40000,500,8000,1000)
points(0,0,200,40000,200,40000,500,8000,1000)
points(0,0,200,40000,200,40000,500,8000,1000) 

我认为在这里定义确切的段是错误的。如果x在0:3,我会知道该怎么做。但是在间隔的情况下我该怎么做?

2 个答案:

答案 0 :(得分:2)

您需要提供坐标x0y0以及x1y1矢量,它们是从中抽取的x和y坐标并分别。请考虑以下工作示例:

x <- seq(0, 1000, length = 200)
y <- seq(0, 80000, length = 200)
plot(x,y,type="n")

from.x <- c(0, 200, 500)
to.x   <- c(200, 500, 1000)
to.y   <- from.y <- c(0, 40000, 80000) # from and to y coords the same

segments(x0 = from.x, y0 = from.y, x1 = to.x, y1 = to.y)

这会生成以下图

enter image description here

答案 1 :(得分:0)

快速ggplot版本:

library(ggplot2)
x <- seq(0, 1000, length = 200)
y <- seq(0, 80000, length = 200)
plot(x,y,type="n")

dta <- data.frame( x= from.x,y=from.y, xend=to.x, yend=to.y )
ggplot( dta, aes( x=x, y=y, xend=xend, yend=yend )) +
  geom_segment()+
  geom_point( shape=16, size=4 ) +
  geom_point( aes( x=xend, y=yend ), shape=1, size=4 )