从坐标绘制线段

时间:2019-10-29 20:57:01

标签: r

我想绘制线段。每行都有一个起点(x1 / y1)和终点(x2 / y2)。我正在关注此Answer,但是它不起作用。我只是得到一个空的情节:

empty plot, without line segments

这是我使用的命令:

data <- matrix(1:12, ncol = 4, dimnames = list(c("a","b","c"), c("x1","y1","x2","y2")))
plot(NA, xlim=c(0,15), ylim=c(0,15), xlab="x", ylab="y")
segments(data["x1"], data["y1"], data["x2"], data["y2"])

data给出:

  x1 y1 x2 y2
a  1  4  7 10
b  2  5  8 11
c  3  6  9 12

稍后,我计划从文本文件(csv)加载数据。但是对于第一次测试,我只是使用这个生成的无意义的数字。

由于我没有收到错误消息,所以我被困在这里。我犯了哪些基本错误?谢谢您的帮助。

我使用:

R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Platform: x86_64-pc-linux-gnu (64-bit)

1 个答案:

答案 0 :(得分:0)

正如StupidWolf在评论中所说,矩阵缺少逗号。正确的是:

segments(data[,"x1"], data[,"y1"], data[,"x2"], data[,"y2"]) 

但是:您可以将csv数据直接加载到数据框中,然后进行绘制。不需要矩阵。

enter image description here

在名为data.csv的文件中采样数据:

x1,y1,x2,y2
1,1,5,7
6,4,12,10
8,2,3,9

命令:

data=read.csv("data.csv", sep=",")
plot(NA, xlim=c(0,15), ylim=c(0,15), xlab="x", ylab="y")
segments(data$x1, data$y1, data$x2, data$y2)