r - ggplot 中不同几何图形的 scale_color_manual()
问题描述
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()
?似乎我上面的语法是关闭的。
解决方案
有两点需要改变:
既然你已经使用过
fill = letter
,你应该使用scale_fill_manual
而不是scale_color_manual
(如果你使用过,这将是合适的color = letter
)。手动颜色
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 包(v0.2.1)于 2018 年 10 月 8 日创建
推荐阅读
- angularjs - 数据表中的 RowCallback 函数正在从锚标记中删除表达式?
- r - 删除字符串中两个单词之间的数据
- javascript - Jquery接受多个输入没有响应
- java - 在java程序关闭之前调用一个方法
- python - Sqlalchemy mySQL 优化查询
- javascript - 在非反应组件中调用 App 的 forceUpdate 而不将 App 作为属性传递
- android - 在库模块中使用 Dagger 2 和 Proguard 找不到符号 @Generated
- javascript - 你如何返回一个对象的 Observable,其中该对象具有使用 http 请求构建的属性?[RxJs]
- php - 如何在 PHP 中使用正则表达式从数组中搜索单词或文本
- python - 卡在python中的冒泡排序(仅使用while循环)