0

スパットスタットで線をプロットしたい距離シーケンスがあります。例:

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する上にプロットしたいと思います(Illustratorで追加されたラベル):the.lineseqs$name

ここに画像の説明を入力

誰でもこれを行う方法を知っていますか? 助けていただければ幸いです。

4

1 に答える 1

1

このtext関数を使用すると、既存のプロットにテキストを追加できます。テキストを回転できるかどうかは、使用しているグラフィック デバイスによって異なります?par。「crt」と「srt」のセクションを参照してください。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 )
于 2012-04-19T16:01:29.833 に答える