2016-08-15 7 views
3

この質問は、線()で異なる線種を作成する方法を説明しています。How to define more line types for graphs in R?arrowheadなどの他の文字をlines()に追加するにはどうすればよいですか?

ただし、これは線の間隔と長さだけです。方向を示す線をプロットしたいので、---->---->---->---のような線種です。 lines()でそのような行をプロットすることは可能ですか?

+0

できません。あなたは手作業で計算された位置を使用して、自分自身で線の個々の要素を慎重に描く必要があります。 –

答えて

3

破線をプロットし、arrows機能を持つカスタム間隔の矢頭を追加できます。例えば:

を使用する(二回帰モデルから、例えば、)は、2つの曲線を有していると言う:

dat = data.frame(x = 0:20, y1 = 3*0:20 + 5, y2 = 0.5*(0:20)^2 - 2*0:20 + 3) 

は、k個の点で、これら二つの曲線を補間:

k=100 
di1 = as.data.frame(approx(dat$x,dat$y1, xout=seq(min(dat$x), max(dat$x), length.out=k))) 
di2 = as.data.frame(approx(dat$x,dat$y2, xout=seq(min(dat$x), max(dat$x), length.out=k))) 

プロット破線

plot(y ~ x, data=di1, type="l", lty=2, xlim=range(dat$x), ylim=range(c(dat$y1,dat$y2))) 
lines(y ~ x, data=di2, type="l", lty=2, col="red") 

十番目のポイントごとに矢印ヘッドを追加します。

n = 10 
arrows(di1$x[which(1:nrow(di1) %% n == 0) - 1], di1$y[which(1:nrow(di1) %% n == 0) - 1], 
     di1$x[1:nrow(di1) %% n == 0], di1$y[1:nrow(di1) %% n == 0] - 0.01, 
     length=0.1) 
arrows(di2$x[which(1:nrow(di2) %% n == 0) - 1], di2$y[which(1:nrow(di2) %% n == 0) - 1], 
     di2$x[1:nrow(di2) %% n == 0], di2$y[1:nrow(di2) %% n == 0] - 0.01, 
     length=0.1, col="red") 

これを頻繁に行う予定がある場合は、上記のコードを関数の曲線上のポイントに一般化して、ダッシュと矢頭でプロットすることができます。

enter image description here

関連する問題