[R-es] Diagramas de barras agrupados y apilados

ehnandez en unex.es ehnandez en unex.es
Mar Jul 19 12:22:36 CEST 2011


Gracias por los comentarios.
Aquí proporciono un ejemplo simple
================================================================================
> dispositivosn<-c("TAB","BLA","MOB","IPO","NDS","PSP","TOU","PDA","WII","ICL")
> datos1<-matrix(c(12,12,39,NA,27,30,55,7,14,9,19,NA),4,3)
> colnames(datos1)<-c("Táctiles","Lápiz","Otros")
> barplot(datos1,col=c(1:12),ylim=c(0,100),beside=T,legend=dispositivosn)
===============================================================================
Como puede verse en la leyenda no se corresponden los colores de relleno con los
nombres de los dispositivos porque incluye el color del primer NA. Si modificamos
dispositivosn a
 dispositivosn<-c("TAB","BLA","MOB",NA,"IPO","NDS","PSP","TOU","PDA","WII","ICL",NA)
entonces si se corresponden los colores con los nombres de los dispositivos, pero la
leyenda queda muy fea porque incluye las clases vacias.
Tampoco se arregla si cambiamos los NA's por ceros en los datos.
Más todavía, si dibujamos un diagrama de barras apilado, es decir con beside=F,
entonces es peor porque los colores de relleno se repiten para cada columna de la
matriz de datos y el orden de los nombres de los dispositivos en la leyenda es
inadecuado.

Saludos.
Emilio.


> Hola,
>
> El paquete "lattice" y una de sus funciones barchart() permite hacer esto
> que comentas de forma bastante automática (en cuanto a la gestión de los
> grupos y el número de elementos en cada uno de ellos). Aunque su
> parametrización es bastante diferente a la que utiliza barpplot o barplot2 y
> eso te puede suponer un extra de esfuerzo.
>
> De todas formas si proporcionas un ejemplo reproducible o el código que
> estás utilizando seguramente podamos ayudarte mejor.
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> 2011/7/18 <ehnandez en unex.es>
>
>> ¿Alguien sabe cómo dibujar un diagrama de barras agrupado (o apilado) con
>> diferente
>> número de elementos en cada grupo y que la leyenda quede "correcta"?
>> Si utilizamos barplot (o barplot2 de gplots) podemos definir una matriz con
>> columnas
>> las diferentes alturas para cada grupo y si un grupo tiene menos categorias
>> simplemente asignamos NA a los elementos sobrantes de esa columna. Pero no
>> se cómo
>> definir la leyenda para que refleje exactamente las categorías dibujadas.
>> Saludos.
>> Emilio.
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>



Más información sobre la lista de distribución R-help-es