將透明矩形新增到 R 中的 Boxplot

Jinku Hu 2024年2月15日
  1. 使用 rect 函式將透明矩形新增到 R 中的箱線圖
  2. 使用 annotate 函式和 ggplot 將透明矩形新增到 R 中的 Boxplot
將透明矩形新增到 R 中的 Boxplot

本文將演示有關如何在 R 中向箱線圖新增透明矩形的多種方法。

使用 rect 函式將透明矩形新增到 R 中的箱線圖

可以繪製一個透明矩形作為現有圖形的疊加,使用 boxplot 函式構建。rect 函式在 plot 函式之後呼叫以繪製矩形。請注意,rect 也可用於繪製具有給定座標的矩形序列。在這種情況下,我們只向作為背景疊加的箱線圖中新增一個矩形。rect 函式將位置作為前四個引數,用於指定矩形區域。這四個引數可以作為標量值或標量向量傳遞。以下示例採用 mtcars 資料集及其兩個數字列來繪製比例尺。由於這些值是數字,我們可以使用 max 函式來指定一些位置。rect 函式還可以將顏色作為引數來填充矩形。這一次,rgb 函式用於傳遞顏色值和代表其不透明度的 alpha 引數。

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

透明矩形 rect 函式

使用 annotate 函式和 ggplot 將透明矩形新增到 R 中的 Boxplot

如果繪圖是使用 ggplot 庫構建的,我們可以使用 annotate 函式新增一個透明矩形。以下程式碼片段在 x 軸上顯示帶有字元值的箱線圖。annotate 函式將 rect 字串作為第一個引數來指定註釋層的矩形形狀。以下四個引數指定形狀的位置值。即使 x 軸具有非數字值,該函式也可以列舉它們的位置並擬合使用者傳遞的位置編號。

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

透明矩形註釋 ggplot

或者,可以使用 annotate 函式在折線圖上繪製一個矩形並突出顯示繪圖的特定範圍。請注意,當比例具有數值時,*min/*max 引數可以從這些範圍中獲取精確值。

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

透明矩形 ggplot xmax

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook

相關文章 - R Plot