Методы создания легенды вручную в ggplot с примерами кода

Чтобы создать легенду вручную в ggplot, вы можете использовать различные методы в зависимости от ваших конкретных потребностей. Вот четыре часто используемых метода с примерами кода:

Метод 1: использование функции scale_*_manual()

library(ggplot2)
# Create example data
data <- data.frame(
  x = 1:10,
  y = 1:10,
  group = c(rep("Group A", 5), rep("Group B", 5))
)
# Create the plot
plot <- ggplot(data, aes(x, y, color = group)) +
  geom_point()
# Define custom colors
colors <- c("Group A" = "red", "Group B" = "blue")
# Add manual legend
plot + scale_color_manual(values = colors, labels = c("Group A", "Group B"))

Метод 2: использование функции guides()

library(ggplot2)
# Create example data
data <- data.frame(
  x = 1:10,
  y = 1:10,
  group = c(rep("Group A", 5), rep("Group B", 5))
)
# Create the plot
plot <- ggplot(data, aes(x, y, color = group)) +
  geom_point()
# Add manual legend
plot + guides(color = guide_legend(
  override.aes = list(color = c("red", "blue")),
  title = "Groups",
  label = c("Group A", "Group B")
))

Метод 3: использование функций scale_*_*()с функцией guide_legend()

library(ggplot2)
# Create example data
data <- data.frame(
  x = 1:10,
  y = 1:10,
  group = c(rep("Group A", 5), rep("Group B", 5))
)
# Create the plot
plot <- ggplot(data, aes(x, y, color = group)) +
  geom_point()
# Add manual legend
plot + scale_color_manual(
  values = c("Group A" = "red", "Group B" = "blue"),
  guide = guide_legend(
    title = "Groups",
    label = c("Group A", "Group B")
  )
)

Метод 4. Создание пользовательской легенды с помощью функций guides()и draw_key_*()

library(ggplot2)
# Create example data
data <- data.frame(
  x = 1:10,
  y = 1:10,
  group = c(rep("Group A", 5), rep("Group B", 5))
)
# Create the plot
plot <- ggplot(data, aes(x, y, color = group)) +
  geom_point()
# Create custom legend
my_legend <- function() {
  draw_key_point(size = 5, shape = 16, fill = "white")
}
# Add manual legend
plot + guides(color = guide_legend(
  title = "Groups",
  label = c("Group A", "Group B"),
  keywidth = 2,
  keyheight = 2,
  override.aes = list(size = 5, shape = 16, fill = "white"),
  key = my_legend
))