Aggiungi rettangolo trasparente a boxplot in R

Jinku Hu 15 febbraio 2024
  1. Usa la funzione rect per aggiungere un rettangolo trasparente a un boxplot in R
  2. Usa la funzione annotate con ggplot per aggiungere un rettangolo trasparente a un boxplot in R
Aggiungi rettangolo trasparente a boxplot in R

Questo articolo dimostrerà più metodi su come aggiungere un rettangolo trasparente a un boxplot in R.

Usa la funzione rect per aggiungere un rettangolo trasparente a un boxplot in R

È possibile disegnare un rettangolo trasparente in sovrapposizione al grafico esistente, costruito utilizzando la funzione boxplot. La funzione rect viene chiamata dopo la funzione plot per disegnare il rettangolo. Nota che rect può essere usato anche per disegnare una sequenza di rettangoli con le coordinate date. In questo caso, aggiungiamo solo un rettangolo al boxplot che si sovrappone come sfondo. La funzione rect assume posizioni come primi quattro argomenti, che specificano l’area del rettangolo. Questi quattro argomenti possono essere passati come un valore scalare o un vettore di scalari. L’esempio seguente prende il set di dati mtcars e le sue due colonne numeriche per disegnare su scale. Poiché i valori sono numerici, possiamo utilizzare la funzione max per specificare alcune posizioni. La funzione rect può anche prendere il colore come parametro per riempire il rettangolo. Questa volta, la funzione rgb viene utilizzata per passare il valore del colore e il parametro alpha che ne rappresenta l’opacità.

boxplot(hp ~ mpg, data = mtcars,
       xlab = "Miles/(US) gallon", ylab = "Gross Horsepower",
       col = "orange")

rect(-1, -1, max(mtcars$hp + 100), max(mtcars$hp) + 100,
     col= rgb(red = 0.95, green = 0.8, blue = 0.3, alpha = 0.2))

funzione rettangolo trasparente rettangolo

Usa la funzione annotate con ggplot per aggiungere un rettangolo trasparente a un boxplot in R

Se il grafico è costruito usando la libreria ggplot, possiamo usare la funzione annotate per aggiungere un rettangolo trasparente. Il seguente frammento di codice visualizza il boxplot con i valori dei caratteri sull’asse x. La funzione annotate prende la stringa rect come primo argomento per specificare la forma del rettangolo del livello di annotazione. I quattro argomenti seguenti specificano i valori di posizione della forma. Anche se l’asse x ha valori non numerici, la funzione può enumerare le loro posizioni e adattare i numeri di posizione passati dall’utente.

library(ggplot2)
library(dplyr)

p1 <- ggplot(InsectSprays, aes(x = spray, y = count)) +
  geom_boxplot(fill = "pink") +
  scale_x_discrete(name = "Number of babies") +
  ggtitle("Title of the Plot") +
  annotate("rect", xmin = 1, xmax = 3, ymin = 0, ymax = max(InsectSprays$count),
           alpha = .2, fill = "orange")

p1

rettangolo trasparente annota ggplot

In alternativa, è possibile utilizzare la funzione annotate per disegnare un rettangolo su un grafico a linee ed evidenziare l’intervallo specifico del grafico. Notare che quando le scale hanno valori numerici, gli argomenti *min/*max possono prendere i valori esatti da quegli intervalli.

library(ggplot2)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice", "Maude", "Mae")) %>%
  filter(sex=="F")

p1 <- ggplot(dat, aes(x = year, y = n, color = name)) +
  geom_line() +
  scale_y_continuous(
    breaks = seq(0, 15000, 1000),
    name = "Number of babies") +
  ggtitle("Name Popularity Through Years") +
  annotate("rect", xmin = 1960, xmax = 2000, ymin = -1, ymax = max(dat$n),
         alpha = .2, fill = "orange")

p1

rettangolo trasparente ggplot xmax

Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Articolo correlato - R Plot