在我特定问题的背景下,我无法理解基本图形中的段功能。
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,我会知道该怎么做。但是在间隔的情况下我该怎么做?
答案 0 :(得分:2)
您需要提供坐标x0
和y0
以及x1
和y1
的矢量,它们是从中抽取的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)
这会生成以下图
答案 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 )