2013-07-03 80 views
1

ablines的顏色使用this data我安裝一個情節:更改對ggplot

p <- ggplot(dat, aes(x=log(Explan), y=Response)) + 
     geom_point(aes(group=Area, colour=Area))+ 
     geom_abline(slope=-0.062712, intercept=0.165886)+ 
     geom_abline(slope= -0.052300, intercept=-0.038691)+ 
     scale_x_continuous("log(Mass) (g)")+ 
     theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2), 
      axis.title.x=element_text(size=rel(1.2),vjust=0.2), 
      axis.text.x=element_text(size=rel(1.3)), 
      axis.text.y=element_text(size=rel(1.3)), 
      text = element_text(size=13)) + 
     scale_colour_brewer(palette="Set1") 

兩個ablines代表每個區域的趨勢調整系統發育關係。我想知道,是否有可能將相同顏色調色板中的ablines與其相應的區域數據相提並論?指定第一個是A區,第二個爲B區

我用:

g <- ggplot_build(p) 

找出第一個顏色爲#E41A1C,第二個是#377EB8,但是當我嘗試在+ geom_abline命令中使用AES來指定這些顏色,即

p <- ggplot(dat, aes(x=log(Explan), y=Response)) + 
     geom_point(aes(group=Area, colour=Area))+ 
     geom_abline(slope=-0.062712, intercept=0.165886,aes(colour='#E41A1C'))+ 
     geom_abline(slope= -0.052300, intercept=-0.038691,aes(colour=#377EB8))+ 
     scale_x_continuous("log(Mass) (g)")+ 
     theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2), 
      axis.title.x=element_text(size=rel(1.2),vjust=0.2), 
      axis.text.x=element_text(size=rel(1.3)), 
      axis.text.y=element_text(size=rel(1.3)), 
      text = element_text(size=13)) + 
     scale_colour_brewer(palette="Set1") 

它改變了點的顏色,並增加了傳說,這是我不想做的事。

任何意見將不勝感激!

回答

6

鑑於你正在閱讀顏色的線條與那些被從區域映射到的分集對應,可以將這些使用適當的值區域進行映射。

geom_abline(slope=-0.062712, intercept=0.165886,aes(colour='A')) + 
    geom_abline(slope= -0.052300, intercept=-0.038691,aes(colour='B')) 

這樣做的好處是,如果您更改配色方案將是一致的。

第二種方法是通過包含斜率和截距和麪積data.frame,如

cc <- data.frame(sl = c(-0.062712,-0.052300), 
        int = c(0.165886,-0.038691), 
        Area = c('A','B')) 

然後你可以在一個呼叫中mapslopeinterceptcolourgeom_abline

例如

p <- ggplot(dat, aes(x=log(Explan), y=Response)) + 
    geom_point(aes(group=Area, colour=Area))+ 
    geom_abline(data = cc, aes(slope =sl, intercept = int,colour = Area)) + 
    scale_x_continuous("log(Mass) (g)")+ 
    theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2), 
      axis.title.x=element_text(size=rel(1.2),vjust=0.2), 
      axis.text.x=element_text(size=rel(1.3)), 
      axis.text.y=element_text(size=rel(1.3)), 
      text = element_text(size=13)) + 
    scale_colour_brewer(palette="Set1") 
p 

enter image description here

8

由於您是直接設置顏色,所以您不需要aes()只需使用colour='#E41A1C'

+geom_abline(slope=-0.062712, intercept=0.165886,colour='#E41A1C')