首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使所有低于阈值的值都具有单一的颜色和比例连续?

如何使所有低于阈值的值都具有单一的颜色和比例连续?
EN

Stack Overflow用户
提问于 2021-02-19 17:22:34
回答 2查看 106关注 0票数 1

我希望将一个变量映射到一个连续的色标,但如果该值低于某个阈值,则它应该具有特定的颜色。在这个例子中,我想让所有的汽车模型都使用灰色填充的mpg < 20,而上面的所有东西都使用连续的色标:

代码语言:javascript
运行
复制
library(ggplot2)
dat <- head(mtcars)
dat$model <- head(colnames(mtcars))
dat$is_low <- ifelse(dat$mpg < 20, TRUE, FALSE)

ggplot(dat, aes(x = model, y = mpg, fill = mpg)) +
    geom_col()

这有可能吗?我见过的最接近的solution是这个,但它将第二个变量映射到scale_color,而不是scale_fill_continuous

EN

回答 2

Stack Overflow用户

发布于 2021-02-19 17:35:02

不是最优雅的,但你可以添加一个只过滤到你想要的灰色的图层:

代码语言:javascript
运行
复制
ggplot(dat, aes(x = model, y = mpg, fill = mpg)) +
  geom_col() +
  geom_col(data = dat[dat$is_low,], fill = "gray70")

票数 1
EN

Stack Overflow用户

发布于 2021-02-19 17:38:52

添加第二层geom_col(),您可以将每个条形图颜色设置为灰色,如果条形图不符合您的标准,则跳过。您可能还希望更改第一层的着色比例限制。

代码语言:javascript
运行
复制
ggplot(dat, aes(x = model, y = mpg, fill = mpg)) +
  geom_col() + geom_col(fill=ifelse(dat$mpg < 20, 'gray', NA))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66274831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档