我想绘制线段。每行都有一个起点(x1 / y1)和终点(x2 / y2)。我正在关注此Answer,但是它不起作用。我只是得到一个空的情节:
这是我使用的命令:
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)
答案 0 :(得分:0)
正如StupidWolf在评论中所说,矩阵缺少逗号。正确的是:
segments(data[,"x1"], data[,"y1"], data[,"x2"], data[,"y2"])
但是:您可以将csv
数据直接加载到数据框中,然后进行绘制。不需要矩阵。
在名为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)