2015-04-17 96 views
-1

如何通過ggplot2控制散點圖中點的顏色?我需要前20個點纔有顏色,接下來20個要有不同的顏色。此刻,我正在使用base R繪圖輸出。矩陣如下所示ggplot中的控制點顏色

1 4 
1 3 
2 9 
-1 8 
9 9 

和我有一個看起來像

cols<-c("#B8DBD3","#FFB933","#FF6600","#0000FF") 

然後

plot(mat[,1],mat[,2],col=cols) 

作品顏色矢量。

我該怎麼做這個ggplot?


關於顏色

我的cols矢量看起來IKE在此 100->ň

colours<-c(rep("#B8DBD3",n),rep("#FFB933",n),rep("#FF6600",n),rep("#0000FF",n),rep("#00008B",n),rep("#ADCD00",n),rep("#008B00",n),rep("#9400D3",n)) 

當我再去做

d<-ggplot(new,aes(x=PC1,y=PC2,col=rr)) 
d+theme_bw() + 
    scale_color_identity(breaks = rep(colours, each = 1)) + 
    geom_point(pch=21,size=7) 

色彩看起來從 完全不同plot(new [,1],new [,2],col = colors) 這個貌似 http://fs2.directupload.net/images/150417/2wwvq9u2.jpg 而ggplot具有相同的顏色看起來像

http://fs1.directupload.net/images/150417/bwc5wn7b.jpg

回答

2

我建議創建一個指定的點屬於哪個組的列。

library(ggplot2) 
xy <- data.frame(x = rnorm(80), y = rnorm(80), col = as.factor(rep(1:4, each = 20))) 

cols<-c("#B8DBD3","#FFB933","#FF6600","#0000FF") 

ggplot(xy, aes(x = x, y = y, col = col)) + 
    theme_bw() + 
    scale_colour_manual(values = cols) + 
    geom_point() 

enter image description here

+0

我將需要ablte來定義自己的顏色調色板......這將tehn需要有20個項目吧?......或者如何將我使用後建議的顏色以上? – triub

+0

這個例子的作品,但tmy數據是連續的,我需要設置我自己的調色板,因爲特定的列... – triub

+0

@triub我切換控制比例的線。請參閱http://docs.ggplot2.org/current/scale_identity.html我會看ColorBrewer調色板,但... –