【问题标题】:manually scale color of a factor in ggplot在ggplot中手动缩放一个因子的颜色
【发布时间】:2022-01-08 09:35:50
【问题描述】:

假设我有一个这样的数据框

id password   year     length    Something
1 1234567      2001     7         good
2 pass4      2001       5         bad
3 angel3     2003       6         bad
4 pizza      2004       5         ok

我试图获得一个代码,该代码将创建一个带有 3 个变量的 geom_point,但我只想突出显示因子 ''Something'' 的单个级别。而且我不希望因素的任何其他级别(如好或坏)着色。或者至少他们可以保持黑色。

我在想可能是这样的:

graph <- dat %>% 
        ggplot(aes(x=(year), y=length, color=Something$ok)+
      geom_point()

但我不能使用 $ 。

【问题讨论】:

    标签: r ggplot2 tidyverse geom-point scale-color-manual


    【解决方案1】:

    您可以通过将所有点设置为一种颜色并更改要更改的点的颜色来仅着色一个点。为此,您可以使用scale_color_manual

    数据:

    dat <- structure(list(id = 1:4, password = structure(c(1L, 3L, 2L, 4L
    ), .Label = c("1234567", "angel3", "pass4", "pizza"), class = "factor"), 
        year = c(2001L, 2001L, 2003L, 2004L), length = c(7L, 5L, 
        6L, 5L), Something = structure(c(2L, 1L, 1L, 3L), .Label = c("bad", 
        "good", "ok"), class = "factor")), class = "data.frame", row.names = c(NA, 
    -4L))
    

    剧情:

    dat %>% 
      ggplot(aes(x=(year), y=length, color = Something == "ok"))+
      geom_point() +
      scale_color_manual(values = c("blue", "orange"))
    

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多