ggplot2: как указать несколько цветов заливки для точек, соединенных линиями разных цветов

Я новичок в ggplot2. Я хотел бы создать линейный график, на котором есть точки, где точки заполнены разными цветами, чем линии (см. График ниже). введите здесь описание изображенияПредположим, что набор данных, с которым я работаю, приведен ниже:

set.seed(100)
data<-data.frame(dv=c(rnorm(30), rnorm(30, mean=1), rnorm(30, mean=2)), 
                 iv=rep(1:30, 3), 
                 group=rep(letters[1:3], each=30))

Я попробовал следующий код:

p<-ggplot(data, aes(x=iv, y=dv, group=group,  pch=group)) + geom_line() + geom_point()

p + scale_color_manual(values=rep("black",3))+ scale_shape(c(19,20,21)) + 
scale_fill_manual(values=c("blue", "red","gray"))

p +  scale_shape(c(19,20,21)) + scale_fill_manual(values=c("blue", "red","gray"))

Но я не получаю то, что хочу. Надеюсь, кто-нибудь укажет мне правильное направление. Спасибо!


person Alex    schedule 12.03.2013    source источник


Ответы (1)


scale_fill_manual(), scale_shape_manual() и scale_colour_manual() можно использовать, только если вы установили fill=, shape= или colour= внутри aes().

Чтобы изменить цвет только для точек, вы должны добавить colour=group внутри вызова geom_point().

  ggplot(data, aes(x=iv, y=dv, group=group,shape=group)) + 
    geom_line() + geom_point(aes(colour=group)) +
    scale_shape_manual(values=c(19,20,21))+
    scale_colour_manual(values=c("blue", "red","gray"))

введите здесь описание изображения

person Didzis Elferts    schedule 12.03.2013
comment
Что делать, если сюжет уже создан, и я хочу изменить его цветовую палитру? - person qed; 09.03.2015