Crear diagramas de caja agrupados en R
-
Utilice el parámetro
fill
en la funciónggplot
para crear diagramas de caja agrupados en R -
Utilice la función
facet_wrap
para construir diagramas de caja agrupados en R
Este artículo demostrará varios métodos sobre cómo crear diagramas de caja agrupados en R.
Utilice el parámetro fill
en la función ggplot
para crear diagramas de caja agrupados en R
La función ggplot
junto con geom_boxplot
se utiliza generalmente para construir objetos boxplot. El primer parámetro de la función ggplot
representa el conjunto de datos que se utilizará, mientras que el segundo parámetro especifica la lista de asignaciones estéticas. La función aes
asigna los argumentos x
e y
a las columnas continente
y lifeExp
del conjunto de datos gapminder
, filtradas utilizando las funciones del paquete dplyr
al principio. Luego, el parámetro de “relleno” mapea los datos de la columna “año” y dibuja diagramas de caja anuales para cada continente. Los datos de year
deben convertirse a factor
antes de asignarlos al parámetro de llenado
; de lo contrario, el gráfico dibujado no afecta la agrupación.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p1 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = year)) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p2 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
grid.arrange(p1, p2, nrow = 2)
Utilice la función facet_wrap
para construir diagramas de caja agrupados en R
La función facet_wrap
es otra opción para dibujar múltiples diagramas de caja agrupados por el parámetro específico. En este caso, demostramos la agrupación anual de las parcelas. Tenga en cuenta que facet_wrap
puede funcionar sin especificar el parámetro fill
, pero ayuda a distinguir diferentes trazados por colores tal como se obtienen con el siguiente fragmento de código. scale_x_discrete
y scale_y_continuous
también se utilizan para modificar etiquetas y nombres de ejes.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p3 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
facet_wrap(~year) +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p3
facet_wrap
muestra las mismas escalas en diferentes gráficos. Aunque podemos asignar una cadena “libre” al parámetro “escala”, eso da como resultado escalas ajustadas automáticamente.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p4 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
facet_wrap(~year, scale = "free") +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p4
También se podrían construir diagramas de caja anuales a partir del conjunto de datos gapminder
sin filtrar. Esta vez, el parámetro fill
tiene asignada la columna continente
y la función facet_wrap
vuelve a tomar datos de year
.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
p5 <- ggplot(gapminder, aes(x = continent, y = lifeExp, fill = continent)) +
facet_wrap(~year) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p5
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook