2017-07-17 44 views
0

我有一行代碼,我正在運行一些數據來製作MDS圖。讓我們用數據第一次啓動:爲什麼這兩個ggplots,以相同的方式生成,命令傳說不同?我如何控制它?

Data for MDS 1

Data for MDS 2

我創建使用此行代碼MDS圖:

ggplot(mds, aes(X1,X2,color=Virus_Treatment,shape=Infection)) + geom_point(size=3) + ggtitle("MDS Plot") + theme(plot.title = element_text(lineheight=.8, face="bold")) 

當我繪製數據MDS 1,它看起來像這樣:MDS plot 1

但是,當我繪製MDS 2的數據時,它看起來像這樣:enter image description here

第一個問題:爲什麼感染圖例頂部爲MDS 1,底部爲MDS 2?我在字面上運行相同的代碼,爲什麼圖例會改變它的行爲?我想要這些情節之間的一致性。有什麼方法可以指定如何訂購傳說?

第二期:我希望顏色與Virus_Treatment部分保持一致。在MDS 2中,數據類型比MDS 1多1種,因此會丟失顏色一致性。有沒有辦法爲MDS 2重新排序數據,以便新的顏色位於列表的末尾,或者手動設置靜態顏色集?即使使用的顏色數量不同,我也需要保持圖形中的顏色相同。

在此先感謝您的任何見解!

+1

顏色圖例根據因子的級別確定。在兩個數據集的'Virus_Treatment'上使用'factor()',並按照您想要的順序將'levels'指定爲唯一值的完整列表。 – Gregor

+1

您可以通過'scale_color_manual'設置顏色;請參閱,例如[這裏](https://stackoverflow.com/questions/19068432/ggplot2-how-to-use-same-colors-in-different-plots-for-same-factor)。我記得傳奇的順序可以[祕密和不可預知的](https://stackoverflow.com/a/11397958/2461552);請參閱'guide_legend'的「order」參數來控制訂單。 – aosmith

回答

0

感謝Gregor和aosmith的回答。這是我爲解決這些問題所做的工作:

Virus_Treatments <- factor(mds$Virus_Treatment, 
    levels = c("ACali09_contact", "AChkShng113_principal", 
       "AShng113_principal", "mock_mock", "ACali09_principal")) 

color_set = c("#F8766D", "#7CAE00", "#00BFC4", "#C77CFF", "#FF61C3") 

ggplot(mds, aes(X1,X2,color=Virus_Treatments,shape=Infection)) + geom_point(size=3) + ggtitle("MDS Plot") + theme(plot.title = element_text(lineheight=.8, face="bold")) + guides(colour = guide_legend(order = 2), shape = guide_legend(order = 1)) + scale_colour_manual(values=color_set) 
相關問題