我试图用一个主要是数字的因素来给一个图形着色,如下所示:
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_viridis_d()我想做的是特例的(0,1]值和颜色,以红色,但保留病毒梯度的剩余值。我知道我可以在空中改变颜色,但我想知道是否也有可能构建一个新的离散色调色板,它的第一个颜色是红色,然后是渐变,这将使代码更加可重用。
因此,更普遍的问题是:可以轻松地在现有的离散调色板?中添加/删除/编辑颜色。
发布于 2018-04-19 16:58:41
除了将调色板保存到变量中以供以后使用外,这与@季节性史密斯的回答基本相同。我经常这样做,是为了显式设置NA颜色,然后在多个情节中使用调色板。
其他包具有类似于viridis的函数:例如,您可以从RColorBrewer::brewer.pal获得ColorBrewer调色板,从rcartocolor::carto_pal获取CartoColor调色板,或者从与调色板同名的函数获得任何ggthemes调色板。
library(tidyverse)
plasma_pal <- c("red", viridis::plasma(n = 6))
plasma_pal
#> [1] "red" "#0D0887FF" "#6A00A8FF" "#B12A90FF" "#E16462FF" "#FCA636FF"
#> [7] "#F0F921FF"
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_manual(values = plasma_pal)

由reprex封装创建于2018-04-19 (v0.2.0)。
发布于 2018-04-18 20:00:23
需要调用scale_color_manual()
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_manual(values = c("red", viridis::viridis(6)))

https://stackoverflow.com/questions/49905139
复制相似问题