0

この非常に有用な質問と回答のフォローアップとして:

重心の 95% 信頼楕円の色分け

ggplot で NMDS プロットの信頼楕円をうまく重ね合わせることができました。ここで、プロット上のデータ ポイントの色と形状、および楕円の色と線種を指定して、4 つの処理を区別します。

NMDS はこちら:

http://pastebin.com/99WcC6wN

Dat2 はここにあります:

http://pastebin.com/D93wrShT

私が試したコードは次のとおりです。

ggplot(data = NMDS, aes(MDS1, MDS2)) + geom_point(aes(color = group)) +
  geom_path(data=Dat2, aes(x=NMDS1, y=NMDS2,colour=group), size=1,     linetype=2)+theme(axis.title.y=element_text(size=rel(1.1),vjust=0.2),axis.title.x=element_t    ext(size=rel(1.1),vjust=0.2),axis.text.x=element_text(size=rel(1)),axis.text.y=element_text(size=rel(1)),text = element_text(size=13)) +scale_shape_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"),
                  values = c("17", "19","17", "19")) +scale_colour_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"),
                  values = c("blue", "blue","red", "red")) +scale_linetype_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"),
                  values = c("3", "1","3", "1")) 

残念ながら、点と楕円の色だけが機能しているようです。楕円の線種とデータポイントの形状は変わらないようです。これを回避する方法について誰か提案がありますか?

どうもありがとう!

4

1 に答える 1

1

にマッピングしたように、linetypeshapeをにマッピングする必要があります。変数の名前は 2 つのデータセットで同じであるため、実際にはこれらのマッピングの両方を最初の行で 1 回行うことができます。groupcolorgroup

ggplot(data = NMDS, aes(MDS1, MDS2, color=group, linetype=group, shape=group))

もちろん、他の場所でcolorとのlinetypeマッピングを削除する必要があります。linetypeまた、値scale_linetype_manualは文字列ではなく数値として指定する必要があります。最終的には、次のようになります。

ggplot(data = NMDS, aes(MDS1, MDS2, color=group, linetype=group, shape=group)) + 
  geom_point() +
  geom_path(data=Dat2, aes(x=NMDS1, y=NMDS2), size=1) + 
  theme(axis.title.y=element_text(size=rel(1.1),vjust=0.2),axis.title.x=element_text(size=rel(1.1),vjust=0.2),axis.text.x=element_text(size=rel(1)),axis.text.y=element_text(size=rel(1)),text = element_text(size=13)) +
  scale_shape_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c(17, 19,17, 19)) +
  scale_colour_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c("blue", "blue","red", "red")) +
  scale_linetype_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c(3, 1,3, 1))

希望のプロット

于 2013-09-25T12:56:42.747 に答える