varias studio qplot graphs graficas ggplot r ggplot2 legend

studio - qplot r



Leyenda en la parte inferior, dos filas envueltas en ggplot2 en r (1)

Rdates <- c("2007-01-31","2007-02-28","2007-03-30","2007-04-30","2007-05-31","2007-06-29","2007-07-31","2007-08-31","2007-09-28","2007-10-31") Rdates <- as.Date(Rdates) Cnames <- c("Column 1 Really Long","Column 2 Really Long","Column 3 Really Long","Column 4 Really Long","Column 5 Really Long","Column 6 Really Long","Column 7 Really Long","Column 8 Really Long","Column 9 Really Long","Column 10 Really Long") MAINDF <- data.frame(replicate(10,runif(10,-0.03,0.03))) rownames(MAINDF) <- Rdates colnames(MAINDF) <- Cnames CUSTOMpalette <- c("#1a2ffa", "#0d177d", "#1a9ffa", "#fa751a", "#4b8e12", "#6fd21b", "#fae51a", "#c3b104", "#f5df05", "#dcc805") MAINDF[,"dates"] <- Rdates MAINDF <- melt(MAINDF,id.vars="dates") gg <- ggplot(MAINDF, aes(x = dates, y = value, fill = variable)) gg <- gg + geom_bar(stat = "identity") gg <- gg + scale_x_date(breaks = "3 months", labels=date_format("%b%y"),limits=c(min(as.Date(MAINDF$dates)),max(as.Date(MAINDF$dates)))) gg <- gg + theme( axis.text.x= element_text(color="black",angle=45, size=10, vjust=0.5), axis.text.y= element_text(color="black", size=12, vjust=0.5), axis.title.y = element_text(color="black",size=12, vjust=0.5), plot.title = element_text(color="black",face="bold",size=14, hjust=0.5,vjust=1), panel.background = element_blank(), panel.border = element_rect(linetype = "solid", colour = "black",fill=NA), legend.position="bottom", legend.title = element_blank(), legend.key = element_rect(fill="white"), legend.background = element_rect(fill=NA) ) gg <- gg + xlab("") + ylab("Monthly Returns") gg <- gg + ggtitle("Contribution by Strategy") gg <- gg + scale_y_continuous(labels = percent_format()) gg <- gg + scale_fill_manual(values=CUSTOMpalette) gg

Actualmente tiene una configuración de gráfico de barras apilada ggplot2. Todo funciona correctamente ahora, excepto que tengo un problema con la leyenda. Lo puse en la parte inferior, pero hay 10 elementos, por lo que algunos se cortan (no se ajusta). Intenté con las guides(fill=guide_legend(nrow=2)) pero esto coloca las etiquetas en un orden diferente (quiero obtener las primeras 5 y luego las últimas 5 a continuación. ¿Alguna sugerencia?


Estabas realmente cerca. Prueba esto al final:

gg+guides(fill=guide_legend(nrow=2,byrow=TRUE))