2016-06-18 7 views
4

私はplot関数でプロットを生成しました。ポイントマーカーにpch()、ラインタイプにltyを追加しました。凡例セクションでは、ポイントとラインを一緒にマージしたいと思っていました。私はmerge=TRUEを使用しましたが、動作しませんでした。ラインタイプのみを表示しています。 merge=FALSEと同じことです。どちらの場合も、ボックスの凡例のボックスの幅にわずかな変更があります。それだ。何か案が?ここでRプロット:凡例にポイントタイプとラインタイプの両方を表示

はサンプルコードです:

m<-1:10 
n<-runif(1:5) 

plot(m,type = "o", col="blue",main = "plot",xlab = "distance",ylab = "height") 
lines(n+2,type="o", pch=22,lty=6,col="red") 
lines(m-3,type="o", pch=17,lty=5,col="forestgreen") 

legend(x=2,y=8,c("R","S","T"),lty=c(1,6,5),pch=c(5,22,17), 
     cex=.8, col=c("blue","red","forestgreen"),merge = FALSE) 

答えて

5

人々は、いくつかのおもちゃのコードに入れて、あなたを求めています。これは人々にあなたを助ける出発点を与えるので重要です。実際にこれを行うことは難しいことではありません。次のことを考えてみましょう:

set.seed(0); x1 <- rnorm(10); x2 <- rnorm(10); x3 <- rnorm(10) 
plot(x1, type = "b", pch = 19, lty = 1, col = 1, 
    ylim = range(c(x1,x2,x3))) ## both points and lines 
points(x2, pch = 19, col = 2) ## only points 
lines(x3, lty = 2, col = 3) ## only lines 
legend(6, 0.9*max(c(x1,x2,x3)), legend = c("x1", "x2", "x3"), 
     pch = c(19, 19, NA), lty = c(1, NA, 2), 
     col = c(1,2,3), text.col = c(1,2,3)) 

test

表示するかを制御するためにNAを使用してください。


フォローアップ

私はlegend()pchを含めるのを忘れていました。私は、ポイントが凡例の各行の右端に表示されていることを含めました。それらをセンタリングする方法はありますか?

グレート!これであなたのコードをあなたの質問に含めました。問題はlegend()への最後の呼び出しにあります。/set引数mergeを使用しないでください:

legend(x=2,y=8,c("R","S","T"),lty=c(1,6,5),pch=c(5,22,17), 
     cex=.8, col=c("blue","red","forestgreen")) 

これは、あなたがやりたいだろう。

関連する問題