2017-08-14 6 views
1

R statモジュールprcompとggplot2を使用してpca解析を実行しようとしていますが、サンプルデータは以下のようになります。各車種について、3つの列にデータがあります。これまで、以下のコードを使ってプロットを生成することができました。ggplot geom point、テキストを変更する

DF:

> head(car.df) 
    honda_1_smp honda_2_smp honda_3_smp audi_1_smp audi_2_smp audi_3_smp merc_1_smp merc_2_smp 
s1 0.000289 0.000000 0.076095 0.056965 0.030314 0.000000 0.000000 0.028548 
s2 1.588724 1.678821 0.795915 0.552910 0.503845 0.248782 0.201806 2.324172 
s3 0.067802 0.068452 0.082904 0.014259 0.038896 0.044144 0.003634 0.167235 
s4 0.000000 0.000000 0.000000 0.000000 0.000000 0.008724 0.000000 0.000000 
s5 0.822612 1.137569 0.008302 0.025600 0.000000 0.000000 0.000000 0.000000 
s6 0.025091 0.096847 0.000000 0.031416 0.024999 0.000000 0.012987 0.000000 

コード:

carpca = prcomp(t(car.df), center=T) 
summary(carpca) 
car12 = data.frame(PC1=carpca$x[,1], PC2= carpca$x[,2], type=rownames(carpca$x)) 
ggplot(car12, aes(x=PC1 , y=PC2 , col=type)) + 
    geom_point() + geom_text(aes(label = type), hjust=0, vjust=0) + 
    xlab("PC1 89%") + ylab("PC2 77%") + ggtitle("car") 

プロットenter image description here

質問

どのようにプロットの一つの色や形などのグループのすべての私の複製ヘッダをすると、伝説。 意味:各ホンダは同じ色と形をaudiとmercのために同様に持つでしょう。

+1

私はブランドを示す別の列 'brand'を作成し、' car12'に、信じて、そして '色=ブランド、形状を使用する= aes''でbrand'は動作します。 –

答えて

2

"type"属性からレプリケートIDを取り除くために、regex(gsub)を使用します。

car12 = data.frame(PC1=carpca$x[,1], PC2= carpca$x[,2], type=gsub("_.*$", "", rownames(carpca$x))) 
ggplot(car12, aes(x=PC1 , y=PC2 , col=type)) + 
    geom_point() + geom_text(aes(label = type), hjust=0, vjust=0) + 
    xlab("PC1 89%") + ylab("PC2 77%") + ggtitle("car") 

enter image description here

+0

これは魅力的に機能しましたが、どのようにして各タイプの形を変えることができますか – sbradbio

+1

多分このようにデータをプロットすることができました... ggplot(car12、aes(x = PC1、y = PC2、col = type))+ geom_point注釈(geom = "text"、x = car12 $ PC1、y = car12 $ PC2、 label = car12 $ type、hjust = -0.1、vjust = -0.1)+ xlab ( "PC1 89%")+ ylab( "PC2 77%")+ ggtitle( "car") –

+0

元のデータに6以上の変数があり、エラーメッセージ " 1 :形状パレットは、6よりも多くの が識別困難になるため、最大6つの離散値を扱うことができます。あなたが持っていなければならない場合は の形状を手動で指定することを検討してください。 – sbradbio

関連する問題