私はRでプロットを作成しました。多くの異なる色で、私の23のカテゴリーのどれが属しているかを示しています。点の色は、ベクトル(層数23レベルの因子である層)によって加算されます。Rプロットの凡例が点に応じた色を表示していない
凡例を追加して、色とそのカテゴリを表示しようとすると、一致しないようです(下図参照)。
これは私のプロットコードです:ここで
plot(pca_nmdsscores, type = "n")
points(pca_nmdsscores, col=stratumcol, cex=1.5, pch = 15)
legend("right","top",levels(stratumcol),cex=.8, col = as.numeric(stratumcol), pch =15, lty = 0) # pch = stratumcol
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="purple",label = T, show.groups = "LateMoistRich")
ordihull(pca_nmdsscores, groups = stratumcol,draw = "polygon", col ="blue",label = T, show.groups = "MidWetPoor")
私Rplotが表示されるはずです。ご覧のように、私のカテゴリー「MaleMoistRich」はポイントをピンク・アイ・カラーで結んでいますが、伝説ではこのカラーの名前は「MidMoistRich」です。
"MidWetPoor"と同じ、ミッドブルーポイントを接続し、この色は "LateMoistPoor"を示します。
この問題を解決するにはどうすればよいですか?
私はソリューションを探してみましたが、それを解決することはできませんでした - 私のパレットは23色で定義されているので何も変わらないので、それらをリサイクルする必要はありませんとにかく)
[伝説やポイントの色を示すRからプロット、] [1]
[OK]を - 私は初心者だので、私は...
を私のプロットの画像をアップロードすることはできませんしかし、代わりにこちらをご覧ください:http://i.stack.imgur.com/pzn2y.png
/ありがとうs
編集: 解決策は、私の要素にレベル()を使用しないことでした。凡例=レベル(階層数)でも、レベル=階層(階層数)でもありません。 Richard and DeveauPは、レベルが問題かもしれないと示唆しました。
これは新たな問題を作り出しました。私のlegenはレベルだけでなく、元の問題であった正しいポイントカラーに対応する色を表示しました。
この新しい問題は、 "levels()"ではなく "unique()"を使用して解決しました。
legend("Right","top",legend=unique(stratumcol), cex=.8, col = unique(stratumcol), pch=15, lty=0)
私は解決策
を試しました(数値1は必ずしも最初の要素ではありません)。 as.numericを削除するとどうなりますか? – DeveauP
これは何も変わりません。私はそれを試して修正するためにそれを追加しました - それはどちらでもなかった:) – AAL
あなたの凡例の使用に問題があるかもしれません。 stratumcolが因子の場合、as.numeric()は色ではなく因子コードを返します。また、as.numeric(stratumcol)は、level()に対応する順序ではなく、その順番どおりにベクトルを与えます。 –