2016-06-21 8 views
0

ablineコマンドを使用して、ltyという設定で区別されるいくつかの回帰直線をRの1つのグラフにプロットします。Rの各反復の後に追加

今、私は、読者が解釈するのを助けるために、プロットに凡例を追加しようとしています。それは非常に基本的な伝説ことになってます。変数1

線種Y =可変2、

線種X =など

は今legend()documentationは、私には、総理にかなっているが、私は一度に一つの伝説を書くことに成功しました。

  • この凡例を繰り返し作成する方法はありますか?私。プロット中に 線種と変数を空白の凡例に追加しますか?

  • または、プロット後にすべての情報を収集して書き込む必要がありますか? が完了しましたか?もしそうなら、これを行う最もエレガントな方法は何でしょうか?

コードを移植性の高いものにするために標準パッケージに頼ることができたらうれしいです。

はどうやらMatlabでこれを行うための方法がありますが、私はここでR.

のための何かを見つけることができませんでした私のコードです:

cols=c(0:length(v)) 
count=1 
for (v in variables) 
    { 
    ... 
lmodel=lm(v~x); 
abline(lmodel, lty=cols[count]); 
count=count+1 
... 
    } 
} 

すべてのヘルプははるかに高く評価されます!

+0

ループの各繰り返しでリストやベクトルに追加するなど、凡例に含める情報を収集し、最後に「abline」の後に単に凡例をプロットする*あなたの問題を解決しますか?これははるかにクリーンな解決策になるでしょう。 – geekoverdose

+0

@geekoverdoseはい、これは妥当なもののように聞こえる、提案のおかげで!私はちょうど私の頭痛になっているRのリスト/文字列操作のこれらの種類の非常に良い思い出を持っていませんでした... – patrick

+0

問題はありません、ここに最小の作業例が来る:) – geekoverdose

答えて

1

あなたの問題のための適応が容易であるべきで、あなたのループのすべての繰り返しから凡例のテキストを収集するこの最小限の作業例:

# dummy plot 
plot(iris[,1:2]) 
# empty legend text 
legend_text <- c() 
for (v in 1:4) { 
    abline(v,0, col = v, lty = v)  
    # add next legend text 
    legend_text <- c(legend_text, v) 
} 
# plot legend once 
legend('topright', legend = legend_text, lty=1:4, col=1:4) 

もう一つ:あなたは、ベクターを使用しての問題に実行する場合、考慮代わりにlist()を使用してください。

関連する問題