2017-04-24 46 views
0

我做了一個主成分分析,現在我將結果繪製在R中(繪製2514個人的第一個主要組成部分和第二個主要組成部分,並着色所有關於6個超級人羣的那些點以可視化集羣)。 R默認顏色很好,但我需要特別突出一個超人種,所以我想將它染成黑色。我不關心其他顏色5.繪製關於兩個顏色參數的離散數據

我很難應用我已閱讀的有關自定義調色板和使用ggplot進行繪圖的內容。我試圖創建一個新的調色板,但是我在混合語法中的這兩種東西時遇到了困難。我必須告訴程序(1)關於它的Superpopulation信息的每個點的顏色,以及(2)使用這個新的調色板mypalette,但是在繪圖語法中,這兩個信息都必須位於「col」參數中,但是我想把兩個。下面的代碼,到目前爲止,這不是實現我想要什麼:

Superpopulations<-PC$Superpop 
mypalette=c("blue","violetred1","green1","darkorchid1","yellow1","black") 

mypal=discrete_scale(aesthetics = Superpulations, scale_name = "Superpopulations", palette = mypalette) 

superpopulation<-qplot(newPC2$PC1,newPC2$PC2, col=mypal, main = NULL ,xlab= NULL, ylab=NULL, size=I(2.5)) 
superpopulation + theme(legend.position="bottom") 

我也試過只提取烏魯斯並且使用命令點()獨自在黑色比其他點繪製出來:

points(PCsurus2$PC1, PCsurus2$PC2, col="black") 

但我沒有看到情節的任何變化。

PC是一個數據框,其中前兩列是主要組件值1和2,另一列是Superpop,超級人口的名稱標籤(如「URU」,「EUR」)。 在這裏我離開了圖表。 我想從紅色改變URU顏色爲黑色,以強調人口

+1

還要注意的是'points'僅適用於壘積不是'基於grid'圖形,如'ggplot2'(它不會做任何事情)。 – Axeman

+0

哦,我不知道。謝謝你的注意! :) – melunuge92

回答

1

我會建議不要使用qplot,它教你壞習慣,確實暴露你的語法背後的原理方面做得很差。這裏的ggplot()版本會是什麼樣子:

ggplot(newPC2, aes(PC1, PC2, Superpulation)) +   #Copied your misspelling(!) 
    geom_point(size = 2.5) + 
    scale_color_manual(values = mypal) + 
    theme(legend.position="bottom") 
+0

哦,對不起,我沒有注意到我的拼寫錯誤。謝謝!我試過你的方式,但它產生了這個錯誤:錯誤:映射應該用'aes()或'aes _()'創建。我一定會考慮你的使用ggplot而不是qplot的建議,順便說一句。 – melunuge92

+1

我在aes之前添加了mapping = D – melunuge92

+1

對不起,我轉換了參數,應該立即工作!你沒有一個可重複的例子,所以我剛剛寫下袖口。 – Axeman

相關問題