使用ggplot为图中的特定点着色

时间:2019-04-03 14:58:23

标签: r ggplot2

我在与ggplot2斗争。实际上,我想为散点图中的某些特定点着色。

让我用“ mtcars”数据解释我的问题。 我已经针对“ wt”绘制了“ mpg”。

ggplot(data = mtcars, mapping = aes(x = wt, y = mpg)) + geom_point()

此后,我要突出显示所有马力分别为180(蓝色)和110(红色)的汽车,其余应保持黑色。

如果我使用

ggplot(data = mtcars, mapping = aes(x = wt, y = mpg,col=factor(hp))) + geom_point()

然后每个不同的马力都会上色。

1 个答案:

答案 0 :(得分:2)

library(dplyr)
library(ggplot2)

df <- mtcars %>%
  mutate(
    horse_power = case_when(
      hp == 180 ~ "180 hp",
      hp == 110 ~ "110 hp",
      T ~ "else"
    )
  )

ggplot(data = df, mapping = aes(x = wt, y = mpg, color = horse_power)) + 
  geom_point() +
  scale_color_manual("Horse power", values = c("red", "blue", "green")) +
  labs(
    x = "Weight (1000 lbs)",
    y = "Miles/(US) gallon"
  )