Ответ 1
Вместо установки colour
и fill
, сопоставьте их с использованием эстетики геометрии
aes
, а затем используйте scale_xxx_manual
или scale_xxx_identity
.
Например,
ggplot()+geom_ribbon(data=ribbon,aes(ymin=min,ymax=max,x=x.ribbon,fill='lightgreen'))+
geom_line(data=ribbon,aes(x=x.ribbon,y=avg,color='black'))+
geom_line(data=data,aes(x=x,y=new.data,color='red'))+
xlab('x')+ylab('density') +
scale_fill_identity(name = 'the fill', guide = 'legend',labels = c('m1')) +
scale_colour_manual(name = 'the colour',
values =c('black'='black','red'='red'), labels = c('c2','c1'))
Обратите внимание, что вы должны указать guide = 'legend'
, чтобы заставить scale_..._identity
создать легенду.
scale_...manual
вы можете передать именованный вектор для значений - имена должны быть тем, что вы назвали цветами в пределах вызовов geom_...
, а затем вы можете красиво маркировать.