带有渐变和手动值的自定义scale_color

问题描述 投票:0回答:1

我想构建一个带有包含异常的颜色渐变的 ggplot。

例如,假设我希望渐变从

blue
black
,但特殊值
21
red

这可以使用 2 个具有数据过滤功能的几何对象来完成:

library(tidyverse)
mtcars %>%
  ggplot(aes(x = qsec, y = wt, color = mpg)) +
  geom_point(size = 3, data=~filter(.x, mpg==21), color="red") +
  geom_point(size = 3, data=~filter(.x, mpg>21)) +
  scale_color_gradient(low="blue", high="black",
                        transform = "log")

ggplot output

创建于 2024-12-08,使用 reprex v2.1.1

但是,使用这种技术有令人烦恼的副作用,其中之一是图例不包含红色值。

有没有一种方法可以用一个标准几何图形达到相同的结果?

r ggplot2 scale
1个回答
0
投票

values
中指定
scale_color_gradient
参数可以让您控制沿渐变的颜色位置。

library(ggplot2)
library(dplyr)


mtcars |>
  filter(mpg >= 21) |>
  ggplot(aes(x = qsec, y = wt, color = mpg)) +
  geom_point(size = 3) +
  scale_color_gradientn(colours = c('red', 'blue', 'black'),
                        values = c(0,0.01,1),
                        transform = 'log')

© www.soinside.com 2019 - 2024. All rights reserved.