代码之家  ›  专栏  ›  技术社区  ›  stackinator Brenton Wiernik

为ggplot中的不同几何体缩放\u颜色\u手动()

  •  2
  • stackinator Brenton Wiernik  · 技术社区  · 7 年前
    library(tidyverse)
    
    delta <- tibble(
      type = c("alpha", "beta", "gamma"), 
      a = rnorm(3, 5), 
      b = rnorm(3, 6)
      ) %>% 
      mutate(delta = abs(a - b)) %>% 
      gather(`a`, `b`, `delta`, key = "letter", value = "value")
    
    
    ggplot(delta %>% filter(letter != "delta"), aes(type, value, fill = letter)) +
      geom_col(position = "dodge") + 
      geom_col(data = delta %>% filter(letter == "delta"), width = 0.5) + 
      scale_color_manual("grey", "black", "blue")
    

    我想要这个 a b 条形图应为灰色和黑色。以及 delta 酒吧是蓝色的。我该怎么做呢 scale_color_manual() ? 似乎我上面的语法是错的。

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  7
  •   Indrajeet Patil    7 年前

    有两件事需要改变:

    1. fill = letter ,您应该使用 scale_fill_manual scale_color_manual (如果您使用 color = letter ).

    2. 手动颜色 values 应作为 矢量 .

    library(tidyverse)
    
    delta <- tibble(
      type = c("alpha", "beta", "gamma"), 
      a = rnorm(3, 5), 
      b = rnorm(3, 6)
    ) %>% 
      mutate(delta = abs(a - b)) %>% 
      gather(`a`, `b`, `delta`, key = "letter", value = "value")
    
    
    ggplot(delta %>% filter(letter != "delta"), aes(type, value, fill = letter)) +
      geom_col(position = "dodge") + 
      geom_col(data = delta %>% filter(letter == "delta"), width = 0.5) + 
      scale_fill_manual(values = c("grey", "black", "blue"))
    

    创建日期:2018-10-08 reprex package (第0.2.1版)