我正在寻找在R中创建一个散点图,该散点图将点分成四个象限,然后根据组对每个象限应用一种颜色。
我使用了以下有效的代码,但需要更改颜色。
x_mid <- mean(c(max(iris$Petal.Length, na.rm = TRUE),
min(iris$Petal.Length, na.rm = TRUE)))
y_mid <- mean(c(max(iris$Petal.Width, na.rm = TRUE),
min(iris$Petal.Width, na.rm = TRUE)))
library(dplyr)
library(ggplot2)
iris %>%
mutate(quadrant = case_when(Petal.Length > x_mid & Petal.Width > y_mid ~ "Q1",
Petal.Length <= x_mid & Petal.Width > y_mid ~ "Q2",
Petal.Length <= x_mid & Petal.Width <= y_mid ~ "Q3",
TRUE ~ "Q4")) %>%
ggplot(aes(x = Petal.Length, y = Petal.Width, color = quadrant)) +
geom_vline(xintercept = x_mid) + # plot vertical line
geom_hline(yintercept = y_mid) + # plot horizontal line
geom_point()
答案 0 :(得分:2)
如果我理解正确,唯一缺少的是颜色的手动选择,在这种情况下,颜色来自象限的事实是偶然的。否则,我会丢失一些东西。
您可以像其他任何美感一样指定色阶。特别是,scale_color_manual可以为它提供一个字符串向量,用于指定要使用的颜色。
因此您可以在末尾添加:
scale_color_manual(values = c('orange', 'yellow', 'black', 'grey'))
您要将特定的颜色映射到每个可能的级别,可以为其指定命名向量:
scale_color_manual(values = c(Q4 = 'orange', Q2 = 'yellow', Q1 = 'black', Q3 = 'grey'))