Hola. Tengo un gráfico que tiene muchos names.arg (demasiados...), de modo tal que le vendría bien al lector usar colores intercalados, tal que el primero sea azul, el segundo negro, el tercero azul, cuarto negro, y así. Es decir, definir un vector "similar" a este: rep(c("black", "blue"), length(barras[,1]/2) que permita pintar uno y uno en este gráfico: barplot(t(barras[,2:10]), horiz=T, col=col.segmentos, border=F, space=0, las=1, cex=.75, cex.axis=1 ,names.arg=row.names(barras), cex.names=0.6, col="red", xlab="Valores liquidados, en $") legend(300, 60, xpd=T , inset=c(-0.1,0), cex=1, bty="n"#bg="white" #, lwd=F , ncol=1, pch = 15 ,segmentos ,fill = col.segmentos, border = "darkblue") # text(100, 33, paste("Principales", length(barras[,1]),"principios activos."), adj = c(0,0)) text(100, 30, paste("Explican el", round(sum(barras1[,1])/sum(todos[,1])*100,1),"% del total."), adj = c(0,0)) text(100, 27, paste("Excluye productos por $",round(sum(barras1[,1])-sum(barras[,1]),1),"no identificados."), adj c(0,0)) grid(nx=NULL, ny=NA, col = "gray", lwd = 1, lty = 3) # ?Obviamente, col() pinta las barras pero no los nombres. ¿Es posible hacerlo en lattice? Muchas gracias. -- Mauricio [[alternative HTML version deleted]]
javier.ruben.marcuzzi en gmail.com
2016-Oct-25 18:16 UTC
[R-es] Colores en names.arg de un barplot()
Estimado Mauricio Monsalvo No leí detenidamente su correo, pero mire esto por si le sirve el ejemplo http://www.magesblog.com/2012/12/changing-colours-and-legends-in-lattice.html Javier Rubén Marcuzzi De: Mauricio Monsalvo Enviado: martes, 25 de octubre de 2016 15:11 Para: r-help-es Asunto: [R-es] Colores en names.arg de un barplot() Hola. Tengo un gráfico que tiene muchos names.arg (demasiados...), de modo tal que le vendría bien al lector usar colores intercalados, tal que el primero sea azul, el segundo negro, el tercero azul, cuarto negro, y así. Es decir, definir un vector "similar" a este: rep(c("black", "blue"), length(barras[,1]/2) que permita pintar uno y uno en este gráfico: barplot(t(barras[,2:10]), horiz=T, col=col.segmentos, border=F, space=0, las=1, cex=.75, cex.axis=1 ,names.arg=row.names(barras), cex.names=0.6, col="red", xlab="Valores liquidados, en $") legend(300, 60, xpd=T , inset=c(-0.1,0), cex=1, bty="n"#bg="white" #, lwd=F , ncol=1, pch = 15 ,segmentos ,fill = col.segmentos, border = "darkblue") # text(100, 33, paste("Principales", length(barras[,1]),"principios activos."), adj = c(0,0)) text(100, 30, paste("Explican el", round(sum(barras1[,1])/sum(todos[,1])*100,1),"% del total."), adj = c(0,0)) text(100, 27, paste("Excluye productos por $",round(sum(barras1[,1])-sum(barras[,1]),1),"no identificados."), adj c(0,0)) grid(nx=NULL, ny=NA, col = "gray", lwd = 1, lty = 3) # ?Obviamente, col() pinta las barras pero no los nombres. ¿Es posible hacerlo en lattice? Muchas gracias. -- Mauricio [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Gracias, Javier. Está muy bueno el post, pero en efecto refiere a legend y no a los names.arg Adjunto un archivo para poder correr el gráfico. Creo que eso ayuda a precisar el problema. Las etiquetas que aparecen al costado izquierdo de las barras son las que quiere pintar de negro y azul. También va a necesitar este objeto para que la sintaxis corra sin errores: library(RColorBrewer) #Para Colorear col.segmentos <- brewer.pal(9,"Paired") Gracias! El 25 de octubre de 2016, 15:16, <javier.ruben.marcuzzi en gmail.com> escribió:> Estimado Mauricio Monsalvo > > > > No leí detenidamente su correo, pero mire esto por si le sirve el ejemplo > > http://www.magesblog.com/2012/12/changing-colours-and- > legends-in-lattice.html > > > > > > Javier Rubén Marcuzzi > > > > *De: *Mauricio Monsalvo <m.monsalvo en gmail.com> > *Enviado: *martes, 25 de octubre de 2016 15:11 > *Para: *r-help-es <r-help-es en r-project.org> > *Asunto: *[R-es] Colores en names.arg de un barplot() > > > > Hola. > > Tengo un gráfico que tiene muchos names.arg (demasiados...), de modo tal > > que le vendría bien al lector usar colores intercalados, tal que el primero > > sea azul, el segundo negro, el tercero azul, cuarto negro, y así. Es decir, > > definir un vector "similar" a este: > > > > rep(c("black", "blue"), length(barras[,1]/2) > > > > que permita pintar uno y uno en este gráfico: > > > > barplot(t(barras[,2:10]), horiz=T, col=col.segmentos, border=F, space=0, > > las=1, cex=.75, cex.axis=1 > > ,names.arg=row.names(barras), cex.names=0.6, col="red", > > xlab="Valores liquidados, en $") > > legend(300, 60, xpd=T , inset=c(-0.1,0), cex=1, bty="n"#bg="white" > > #, lwd=F , ncol=1, pch = 15 > > ,segmentos ,fill = col.segmentos, border = "darkblue") # > > text(100, 33, paste("Principales", length(barras[,1]),"principios > > activos."), adj = c(0,0)) > > text(100, 30, paste("Explican el", > > round(sum(barras1[,1])/sum(todos[,1])*100,1),"% del total."), adj > c(0,0)) > > text(100, 27, paste("Excluye productos por > > $",round(sum(barras1[,1])-sum(barras[,1]),1),"no identificados."), adj > > c(0,0)) > > grid(nx=NULL, ny=NA, col = "gray", lwd = 1, lty = 3) # > > > > ?Obviamente, col() pinta las barras pero no los nombres. > > ¿Es posible hacerlo en lattice? > > Muchas gracias. > > > > -- > > Mauricio > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >-- Mauricio ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20161025/242f8121/attachment.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: barras.csv Type: text/csv Size: 3110 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20161025/242f8121/attachment.bin>