tutorial scale_fill_manual remove manually guides ggplot español r ggplot2

scale_fill_manual - R: Leyenda personalizada para ggplot de múltiples capas



remove legend title ggplot2 (1)

Estoy tratando de obtener una leyenda personalizada para un ggplot con datos provenientes de dos marcos de datos separados. Vea a continuación un ejemplo reproducible mínimo.

Lo que intento lograr es tener una leyenda que describa el relleno de cinta, la línea negra y la línea roja.

require(ggplot2) x=seq(1,10,length=100) data=data.frame(x,dnorm(x,mean=6.5,sd=1)) names(data)=c(''x'',''new.data'') x.ribbon=seq(1,10,length=20) ribbon=data.frame(x.ribbon, dnorm(x.ribbon,mean=5,sd=1)+.01, dnorm(x.ribbon,mean=5,sd=1)-.01, dnorm(x.ribbon,mean=5,sd=1)) names(ribbon)=c(''x.ribbon'',''max'',''min'',''avg'') 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'')


En lugar de establecer el colour y el fill , scale_xxx_manual scale_xxx_identity usando los aes geometría estética y luego use scale_xxx_manual o scale_xxx_identity .

P.ej

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''))

Tenga en cuenta que debe especificar guide = ''legend'' para forzar la scale_..._identity para generar una leyenda.

scale_...manual puede pasar un vector con nombre para los valores; los nombres deberían ser los que llamó los colores dentro de las llamadas a geom_... y luego puede etiquetar muy bien.