ggplot2 颜色配置
ggplot2主要通过FILL
和COLOR
属性设置几何对象的颜色,可以直接指定某一种颜色,让颜色随变量自动配置或者使用调色板设置颜色[1]。
色彩代码
对于单个颜色选择,可以参考R语言绘图颜色对照表,其中包含了几乎可以用到的颜色代码
调色板
对于连续色阶或者多种色彩搭配,官方建议使用RColorBrewer
提供的调色板。
ggplot2原生支持通过设置palette
来切换调色板[2],这里提供了预设ColorBrewer
调色板代号及预览。
p + scale_color_brewer(palette = "PuOr")
另外一种官方原生支持的色板Viridis
,这里有预设色板。这个色板以连续颜色为主,也可以通过设置discrete=TRUE
属性使用离散色阶。
p + scale_color_viridis(option="magma")
调色板hex代码查看
- 这里提供了
ColorBrewer
调色板动态预览及hex代码查看。 - 获取其他调色板hex
library(paletteer) paletteer_c(package = "scico", palette = "berlin", n = 10)
- ggplot2 默认调色板查看
library(scales) # n为色板阶数 show_col(hue_pal()(n))
自定义调色板
当以上色板无法满足需求,可以通过以下方式自定义色板[3]。
- 生成色板
主要使用colorRampPalette
,详见文档# 定义基准色 cols<-c('#E64E00','#65B48E','#E6EB00','#E64E00') # 生成色板 20 色阶 # bias用于设置色阶偏移 Bias >1 puts more colors at high values pal<-colorRampPalette(cols, bias = 0.5) image(x=1:20,y=1,z=as.matrix(1:20),col=pal(20))
- 查看色板
pal(20) [1] "#3E5CC5" "#4469BC" "#4A77B3" "#5085AA" "#5693A2" "#5CA199" "#62AF90" "#72B97F" "#86C268" [10] "#9BCB52" "#AFD33B" "#C4DC25" "#D8E50E" "#E6E200" "#E6C900" "#E6B100" "#E69800" "#E67F00" [19] "#E66600" "#E64E00"
- 使用色板
若使用时n小于设置阶数,则从左开始截断使用。# 连续型 p + scale_color_gradientn(colors = pal(20)) # 离散型 p + scale_color_manual(colors = pal(n))