0

複数の環境変数に関するデータを収集した 2 つの生息地タイプのプロットで PCA を実行しています。ポイントの色をggbiplotのデフォルトから変更できました。各ポイントのサイズをそのプロットのキャノピー カバーに依存させたいのですが、次の方法でそれを行うことができました。

point.size = df$canopy.cover * 0.1  

ここで、df$canopy.cover値の範囲は 0 ~ 100 および 0.1 です。これは、100% のキャノピー カバー = ポイント サイズ 10 であるためです。

問題: ポイントのサイズを変更した後、2 つのグループに関連付けられた色を維持できません。次の疑似データを使用します。

env.vars<-data.frame(replicate(5,sample(0:10,20,rep=TRUE)))

cover<-c(89, 92, 72, 53, 88, 89, 71, 83, 71, 66, 23, 30,  5, 15, 57, 54,0, 23, 9, 16)

habitat<-c("habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2")

point.size<-cover*0.1

nest.env.pca <- prcomp(env.vars, center = TRUE, scale. = TRUE) 

g <- ggbiplot(nest.env.pca, obs.scale = 1, var.scale = 1, 
     group = habitat, ellipse = TRUE, 
     circle = TRUE, varname.size=3)+
     scale_colour_manual(values=c("blue", "red")) +
     geom_point(size=point.size)

print(g)

次のようなものが得られます。

ここに画像の説明を入力

交換すると:

geom_point(size=point.size)

と:

geom_point(aes(colour=habitat), size=point.size)

ggbiplotに従って - ポイント サイズを変更すると、次のエラーが表示されます。

Error: Incompatible lengths for set aesthetics: size

助言がありますか?ありがとう。

編集: いくつかの PseudoData を試してみましょう:

4

1 に答える 1

1

これは一般的な ggplot2 構文の問題だと思います。より単純な例 (例: ggplot(mtcars) + geom_point(aes(disp, hp, color=cyl), size =mtcars$model))で発生するためです。

しかし、これはあなたのために働くと思います:

geom_point(aes(X1, X2, color=habitat, size = point.size)) + scale_size_identity()

したがって、質問のコードを使用した完全な回答は次のとおりです(以下のエミリオのコメントから):

env.vars<-data.frame(replicate(5,sample(0:10,20,rep=TRUE)))

cover<-c(89, 92, 72, 53, 88, 89, 71, 83, 71, 66, 23, 30,  5, 15, 57, 54,0, 23, 9, 16)

habitat<-c("habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2", "habitat1", "habitat2")

point.size<-cover*0.1

nest.env.pca <- prcomp(env.vars, center = TRUE, scale. = TRUE) 

g <- ggbiplot(nest.env.pca, obs.scale = 1, var.scale = 1, 
     group = habitat, ellipse = TRUE, 
     circle = TRUE, varname.size=3)+
     scale_colour_manual(values=c("blue", "red")) +
     geom_point(aes(color=habitat, size = point.size)) + scale_size_identity() 

print(g)
于 2015-06-22T20:49:10.053 に答える