如何在散点图象限中指定颜色?

时间:2019-03-28 02:50:28

标签: r ggplot2 scatter-plot

我正在寻找在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()

1 个答案:

答案 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'))