我有一个距离序列,我想在spatstat中绘制一条线。例如:
library(spatstat)
x <- c(0.3, 5)
y <- c(3, 1.2)
range.x <- c(0, max(x)+0.2)
range.y <- c(0, max(y)+0.2)
owin <- owin(range.x, range.y)
the.line <- psp(x0 = x[1],x1 = x[2],y0 = y[1],y1 = y[2], window = owin)
plot(the.line)
seqs <- data.frame(name = seq(1,7), distance = c(0.12, 0.3, 0.45, 0.5, 0.7, 0.89, 0.95))
lengths <- seqs$distance*lengths.psp(the.line)
我想在lengths
的{{1}}上使用the.line
作为标签,以下列方式(使用Illustrator添加标签):{/ p>
有人知道怎么做吗?非常感谢帮助!
答案 0 :(得分:1)
text
功能允许您将文本添加到现有绘图中。是否可以旋转文本取决于您使用的图形设备,请参阅“{crt”和“srt”上的?par
部分。另请参阅text
的'adj'参数,了解如何获取行上方的文本而不是模糊该行。
这一切都假定绘图是在基本图形中完成的。
在运行上面的代码之后,以下内容适用于Windows(使用默认的Windows图形设备):
x.new <- seqs$distance*x[2] + (1-seqs$distance)*x[1]
y.new <- seqs$distance*y[2] + (1-seqs$distance)*y[1]
tmp.x <- grconvertX(x, to='inches')
tmp.y <- grconvertY(y, to='inches')
theta <- atan2(diff(tmp.y),diff(tmp.x))*180/pi
text( x.new, y.new, seqs$name, adj=c(0,0), srt=theta )