Crea boxplot raggruppati in R

Lasha Khintibidze 14 luglio 2021 R R Plot
  1. Usa il parametro fill nella funzione ggplot per creare boxplot raggruppati in R
  2. Usa la funzione facet_wrap per costruire boxplot raggruppati in R
Crea boxplot raggruppati in R

Questo articolo dimostrerà diversi metodi su come creare boxplot raggruppati in R.

Usa il parametro fill nella funzione ggplot per creare boxplot raggruppati in R

La funzione ggplot insieme a geom_boxplot viene generalmente utilizzata per costruire oggetti boxplot. Il primo parametro della funzione ggplot rappresenta il set di dati da utilizzare, mentre il secondo parametro specifica la lista delle mappature estetiche. La funzione aes mappa gli argomenti x e y alle colonne continent e lifeExp dal set di dati gapminder, filtrati inizialmente utilizzando le funzioni del pacchetto dplyr. Quindi il parametro fill mappa i dati della colonna year e disegna boxplot annuali per ogni continente. I dati year devono essere convertiti in factor prima di assegnare il parametro fill; in caso contrario, il grafico tracciato non influisce sul raggruppamento.

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)

boxplot ggplot per gruppo 1

Usa la funzione facet_wrap per costruire boxplot raggruppati in R

La funzione facet_wrap è un’altra opzione per disegnare più boxplot raggruppati in base al parametro specifico. In questo caso, dimostriamo il raggruppamento annuale dei grafici. Nota che facet_wrap può funzionare senza specificare il parametro fill, ma aiuta a distinguere diversi grafici in base ai colori come emesso utilizzando il seguente frammento di codice. Anche scale_x_discrete e scale_y_continuous vengono utilizzati per modificare etichette e nomi di assi.

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

ggplot boxplot del gruppo 2

facet_wrap mostra le stesse scale in grafici diversi. Sebbene possiamo assegnare una stringa “libera” al parametro scale, ciò si traduce in scale regolate automaticamente.

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

boxplot ggplot del gruppo 3

Si potrebbero anche costruire boxplot annuali dal set di dati gapminder non filtrato. Questa volta, il parametro fill ha mappato la colonna continent e la funzione facet_wrap riprende i dati 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

ggplot boxplot del gruppo 4

Articolo correlato - R Plot

  • Aggiungi rettangolo trasparente a boxplot in R
  • Crea boxplot affiancati in R
  • La funzione scale_colour_discrete in R
  • La funzione scale_x_discrete in R
  • La funzione scale_y_continuous in R
  • Aggiungi una linea a un grafico con la funzione Lines() in R