两层颜色不匹配(ggplot2 v0.9)

时间:2012-02-06 14:46:34

标签: r ggplot2

我有一个geom_paths连接一些geom_points的图。两者都应该是相同的颜色,但由于某种原因,两者之间往往不匹配。当特定地点缺少数据时会发生这种情况。

例如:

set.seed(1)
nCategory<-5
nItem<-6
df<-data.frame(category=rep(LETTERS[1:nCategory],1,each=nItem),
           item=paste("Item#",rep(1:nItem,nCategory,each=1),sep=''),
           value=rep(1:nItem,nCategory,each=1)+runif(nCategory*nItem)*0.8)

df<-df[sample(nrow(df),20),] # shuffle the data frame and remove some data

df<-arrange(df,category,item)
p<-ggplot(df)
p<-p+geom_point(aes(x=value,y=category,colour=item),size=3)
p<-p+geom_path(aes(x=value,y=category,group=item,colour=item),size=1.5)
p

mismatched colours

据我所知,如果没有数据丢失,或者至少如果路径的第一个点没有丢失数据(从'A'开始),则不会发生这种情况。在这种情况下,连接线和点具有相同的颜色。

我试图修正色标,但这并没有改变任何东西。

如何为点及其连接线设置相同的颜色?

编辑:我正在使用ggplot2 0.9。 ggplot2 0.8.9不会发生这种情况。

会话信息:

R version 2.14.1 (2011-12-22)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8     LC_MONETARY=en_GB.UTF-8   
 [6] LC_MESSAGES=en_GB.UTF-8    LC_PAPER=C                 LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] graphics  grDevices datasets  stats     utils     methods   base     

other attached packages:
[1] plyr_1.7.1    stringr_0.6   ggplot2_0.9.0 RMySQL_0.8-0  DBI_0.2-5    

loaded via a namespace (and not attached):
 [1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.1       fortunes_1.4-2     grid_2.14.1        MASS_7.3-16        memoise_0.1       
 [8] munsell_0.3        proto_0.3-9.2      RColorBrewer_1.0-5 reshape2_1.2.1     scales_0.1.0       tools_2.14.1      

0 个答案:

没有答案