varias graficos graficas ejemplos diagrama cajas caja bigotes bigote r boxplot

graficos - plot en r



Ordenando un diagrama de caja basado en el valor mediano (3)

Echa un vistazo a ?reorder . El ejemplo parece ser lo que quieres, pero ordenado en el orden opuesto. Cambié -count en la primera línea de abajo para ordenar en el orden que desee.

bymedian <- with(InsectSprays, reorder(spray, -count, median)) boxplot(count ~ bymedian, data = InsectSprays, xlab = "Type of spray", ylab = "Insect count", main = "InsectSprays data", varwidth = TRUE, col = "lightgray")

Me gustaría usar R para hacer una serie de diagramas de caja ordenados por valor mediano. Supongamos que luego ejecuto:

boxplot(cost ~ type)

Esto me daría algunos diagramas de caja donde el costo se muestra en el eje y y la categoría de tipo es visible en el eje x:

----- ----- | | [ ] | | [ ] | | ----- ----- A B

Sin embargo, lo que me gustaría es que las cifras del diagrama de caja se ordenen de mayor a menor valor mediano. Mi sospecha es que lo que tengo que hacer es cambiar las etiquetas del tipo (A o B) para indicar numéricamente cuál es el valor mediano más bajo y más alto, pero me pregunto si hay una forma más inteligente de resolver el problema.


Sí, esa es la idea:

> set.seed(42) # fix seed > DF <- data.frame(type=sample(LETTERS[1:5], 100, replace=TRUE), + cost=rnorm(100)) > > boxplot(cost ~ type, data=DF) # not ordered by median > > # compute index of ordered ''cost factor'' and reassign > oind <- order(as.numeric(by(DF$cost, DF$type, median))) > DF$type <- ordered(DF$type, levels=levels(DF$type)[oind]) > > boxplot(cost ~ type, data=DF) # now it is ordered by median


Tenga cuidado con los valores perdidos, debe agregar na.rm = TRUE para que funcione. Si no, el código simplemente no funciona. Me tomó horas descubrir eso.

bymedian <- with(InsectSprays, reorder(spray, -count, median, **na.rm = TRUE**) boxplot(count ~ bymedian, data = InsectSprays, xlab = "Type of spray", ylab = "Insect count", main = "InsectSprays data", varwidth = TRUE, col = "lightgray")