1

例の「better」文字列の文字「r」のX座標をプログラムでキャプチャするにはどうすればよいですか?その横にある矢印を動的に描画するために、その座標をキャプチャしたいと思います。これはRで実行できますか?それはSASで行うことができます...いくつかの困難があります。

x<-c(1,3)
y<-c(3,3)
plot(y~x, type="c", ylim=c(-1,5), xlim=c(-3,3), col="red") 
abline(h=0,v=0, lty=3)
text(0.3, -2.5, xpd=T, "Group 1 better", adj=0)

#manually draw the arrow
arrows(x0=1.3, x1=3, y0=-2.5, y1=-2.5, length=0.1, code=2,xpd=T)

ここに画像の説明を入力してください

明らかなアプローチは、文字列内の文字の数を数え、その数を文字列のX座標に追加することです。このアプローチはおそらくほとんどの場合うまく機能しますが、テキストのサイズ/スタイル、角度が変更された場合はうまく機能しない可能性があります。文字列の最後の位置をキャプチャする簡単な方法があるかどうか疑問に思います。SASは、前の文字列の内部座標を基準にして矢印を配置することでこれを行います。

また、可能であれば、他のグラフィック要素の最後の座標をキャプチャする方法も知りたいです。ありがとうございました

4

1 に答える 1

4

strwidth を使用して文字列の幅を取得し、余分な文字の幅を追加して少しのスペースを確保します。

> arrowlabel = "Group 1 better")
> sw = strwidth(arrowlabel)
> xpos = 0.3 + sw + sw/nchar(arrowlabel)

次に、x=xpos から始まる矢印を描きます。

于 2012-05-11T15:02:35.120 に答える