English · PDF 485
当值和颜色之间已有预定义的映射时,请使用 scale_color_manual()。例如,如果我们将总统所属政党映射到颜色,我们希望使用共和党为红色、民主党为蓝色的标准映射:
presidential %>% mutate(id = 33 + row_number()) %>% ggplot(aes(start, id, color = party)) + geom_point() + geom_segment(aes(xend = end, yend = id)) + scale_colour_manual( values = c(Republican = "red", Democratic = "blue") )

对于连续型颜色,你可以使用内置的 scale_color_gradi ent() 或 scale_fill_gradient()。如果你有一个发散型标度,可以使用 scale_color_gradient2()。它允许你为正值和负值指定不同的颜色,例如。当你想区分高于或低于均值的点时,这有时也很有用。
另一个选择是 viridis 包提供的 scale_color_viridis()。它是分类 ColorBrewer 标度的连续版本。设计者 Nathaniel Smith 和 Stéfan van der Walt 精心设计了一种具有良好感知特性的连续配色方案。下面是 viridis 插图文档中的一个示例:
df <- tibble( x = rnorm(10000), y = rnorm(10000)