web-dev-qa-db-ja.com

ポイントの色とポイント周辺のフレーム/楕円の色を変更します

私はR、特にこのWebサイトの初心者ユーザーであるということから始めたいので、ここで何かを明確にする必要がある場合は、私に知らせてください!まだよくわからないので、なるべく「おしゃべり」してください。

質問:2つのグループ(この場合は種)を表すPCAグラフを作成したいと思います。また、その周りに楕円やフレームを描きたいです。

ありがたいことに、ggplot2を使用してこのタスクを実行しました。ただし、ポイントまたは楕円/フレームの色をデフォルトを超えて変更することはできません。

この件について何か助けをいただけますか?

以下のサンプルコードを参照してください。これは、PCAの例でよく使用される従来のアイリスデータセットです。

###load in plackages###
library(ggbiplot)
library(ggfortify)
library(cluster)

#my actual data is very similar to the iris data, though in my data the     "Species" column is first
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
df <- iris[c(1, 2, 3, 4)]
autoplot(prcomp(df))
autoplot(prcomp(df), data = iris, colour = 'Species') #pca graph with   species depicted in different colors

PCA GRAPH OF SPECIES DEPICTED IN DIFFERENT COLORS

autoplot(prcomp(df), data = iris, colour = 'Species', shape='Species', frame=T) 

PCA GRAPH WITH FRAMES AROUND POINTS

6

同じPCAを作成しました

data<-iris
df<-iris[c(1, 2, 3, 4)]
PC<-prcomp(df)
PCi<-data.frame(PC$x,Species=data$Species)

ここで、通常のプロットを実行し、通常どおりggplotパラメーターを変更します。

ggplot(PCi,aes(x=PC1,y=PC2,col=Species))+
   geom_point(size=3,alpha=0.5)+ #Size and alpha just for fun
   scale_color_manual(values = c("#FF1BB3","#A7FF5B","#99554D"))+ #your colors here
   theme_classic()

enter image description here

また、フレームのscale_fill_manualを確認してください

[〜#〜]編集[〜#〜]

フレームを追加する方が簡単だと思いました。こちらを確認してください https://stats.stackexchange.com/questions/22805/how-to-draw-neat-polygons-around-scatterplot-regions-in-ggplot2
そしてここ ggplot2:塗りつぶしのないgeom_polygon

また、ggbiplotはscale_color_manualscale_fill_manualを処理する必要があると私はまだ信じていますが、失敗した質問を更新できますか?

7
Matias Andina

素晴らしい醤油!

答えはこれらの例では完全には隠されていませんでしたが、scale_color_manualとscale_fill_manualが、フレームを考えられる任意の色に変更するという、私が望むものを正確に保持していることがわかりました。

#using autoplot from earlier, I placed it into an object
a<-autoplot(prcomp(df), data = iris, colour = 'Species', shape='Species', frame=T)
#then I added on scale_color_manual and scale_fill_manual with the wacky color combos that would never be publishable 
a + scale_fill_manual(values = c("#FF1BB3","#A7FF5B","#99554D")) + scale_color_manual(values = c("black","white","orange")) 

異なる色のPCAグラフ

助けてくれてありがとう!この小さな(またはかなり大きな)グループがここにいることにとても感謝しています!

4