2016-12-26 2 views
3

Я хочу изменить форму и цвет заливки точек в ggplot, это мой код, который работал частично, цветовая легенда по-прежнему черная.Изменение цвета заливки и формы точек в ggplot

ID<-rep(c("KO", "WT"), each=4) 
O<-rep(c("HP", "NN"), each=2, times=2) 
Methionine<-rep(c("- Methionine", "+ Methionine"), each=2, times=2) 
mean.1<-sample(50:100, 8) 
se.1<-runif(8, min=1, max=3) 
mydata<-data.frame(ID, O, Methionine, mean.1, se.1) 

ggplot(mydata, aes(x=O, y=mean.1, ymax=max(mean.1), shape=Methionine, fill=ID)) + 
    geom_errorbar(aes(ymin=mean.1-se.1, ymax=mean.1+se.1), size=1,colour="black", width=.15) + 
    geom_point(size = 10) + 
    scale_shape_manual(labels=c("+ Methionine", "- Methionine"), 
        values = c(21,22))+ 
    scale_fill_manual(name=bquote(bold(paste(alpha, " "))), values = cols) 
+0

Я указал это в первой строке функции ggplot – Al14

+0

правда я не вижу, что Methione - форма – Nate

+0

'scale_color_manual' не работает – Al14

ответ

6

Вы должны сказать ggplot использовать форму = 21 для легенды, так что она использует точку, которая обращает внимание на спецификации заполнения, т.е.

scale_fill_manual(name=bquote(bold(paste(alpha, " "))), 
        values = cols, 
        guide=guide_legend(override.aes=list(shape=21)) 

Полный пример:

cols <- c("red","blue") 
set.seed(101) 
library(ggplot2) 
mydata <- data.frame(ID=rep(c("KO", "WT"), each=4), 
    O=rep(c("HP", "NN"), each=2, times=2), 
    Methionine=rep(c("- Methionine", "+ Methionine"), each=2, times=2), 
     mean.1=sample(50:100, 8), 
    se.1=runif(8, min=1, max=3)) 

gg0 <- ggplot(mydata, 
    aes(x=O, y=mean.1, ymax=max(mean.1), shape=Methionine, fill=ID)) + 
    geom_errorbar(aes(ymin=mean.1-se.1, ymax=mean.1+se.1), 
      size=1,colour="black", width=.15) + 
    geom_point(size = 10)+ 
    scale_shape_manual(labels=c("+ Methionine", "- Methionine"), 
       values = c(21,22)) 

    gg0 + 
    scale_fill_manual(name=bquote(bold(paste(alpha, " "))), 
        values = cols, 
        guide=guide_legend(override.aes=list(shape=21)) 

enter image description here

Смежные вопросы