【问题标题】:scale_color_manual() for different geoms in ggplotggplot 中不同几何图形的 scale_color_manual()
【发布时间】:2018-10-08 15:59:16
【问题描述】:
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")

我希望 ab 条为灰色和黑色。 delta 条为蓝色。我如何使用scale_color_manual() 执行此操作?看来我上面的语法是关闭的。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    有两点需要改变:

    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"))
    

    reprex package (v0.2.1) 于 2018 年 10 月 8 日创建

    【讨论】:

      猜你喜欢
      • 2023-01-19
      • 1970-01-01
      • 2019-10-23
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多