Hinzufügen eines transparenten Rechtecks zu Boxplot in R

Jinku Hu 15 Februar 2024
  1. Verwenden Sie die rect-Funktion, um einem Boxplot in R Transparent ein transparentes Rechteck hinzuzufügen
  2. Verwenden Sie die Funktion annotate mit ggplot, um einem Boxplot in R . ein transparentes Rechteck hinzuzufügen
Hinzufügen eines transparenten Rechtecks zu Boxplot in R

In diesem Artikel werden mehrere Methoden zum Hinzufügen eines transparenten Rechtecks ​​zu einem Boxplot in R veranschaulicht.

Verwenden Sie die rect-Funktion, um einem Boxplot in R Transparent ein transparentes Rechteck hinzuzufügen

Ein transparentes Rechteck kann als Overlay auf den bestehenden Graphen gezeichnet werden, der mit der boxplot-Funktion erstellt wurde. Die Funktion rect wird nach der Funktion plot aufgerufen, um das Rechteck zu zeichnen. Beachten Sie, dass mit rect auch eine Folge von Rechtecken mit den angegebenen Koordinaten gezeichnet werden kann. In diesem Fall fügen wir dem Boxplot nur ein Rechteck hinzu, das als Hintergrund überlagert wird. Die Funktion rect übernimmt Positionen als die ersten vier Argumente, die die Rechteckfläche angeben. Diese vier Argumente können als Skalarwert oder als Skalarvektor übergeben werden. Im folgenden Beispiel wird der Datensatz mtcars und seine beiden numerischen Spalten verwendet, um auf Skalen zu zeichnen. Da die Werte numerisch sind, können wir mit der Funktion max einige Positionen angeben. Die Funktion rect kann auch Farbe als Parameter nehmen, um das Rechteck zu füllen. Diesmal wird die Funktion rgb verwendet, um den Farbwert und den Parameter alpha zu übergeben, der seine Deckkraft repräsentiert.

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))

transparente Rechteck-Rechteckfunktion

Verwenden Sie die Funktion annotate mit ggplot, um einem Boxplot in R . ein transparentes Rechteck hinzuzufügen

Wenn der Plot mit der Bibliothek ggplot erstellt wurde, können wir mit der Funktion annotate ein transparentes Rechteck hinzufügen. Der folgende Codeausschnitt zeigt das Boxplot mit den Zeichenwerten auf der x-Achse an. Die Funktion annotate verwendet die Zeichenkette rect als erstes Argument, um die Rechteckform der Annotationsebene anzugeben. Die folgenden vier Argumente geben die Positionswerte der Form an. Auch wenn die x-Achse nicht numerische Werte hat, kann die Funktion ihre Positionen aufzählen und die vom Benutzer übergebenen Positionsnummern anpassen.

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

transparentes Rechteck ggplot annotieren

Alternativ kann man mit der Funktion annotate ein Rechteck auf einem Liniendiagramm zeichnen und den spezifischen Bereich des Plots hervorheben. Beachten Sie, dass, wenn die Skalen numerische Werte haben, die Argumente *min/*max die genauen Werte aus diesen Bereichen annehmen können.

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

transparentes Rechteck ggplot xmax

Autor: 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

Verwandter Artikel - R Plot