R语言如何在ggplot2的colorbar上添加三角形标注超出量程的数值
实现方法
你已经通过limits和oob=squish完成了超量程数值的颜色映射,只需要额外配置颜色条的引导项参数即可实现两端的三角形标识,操作如下:
核心配置项
ggplot2 3.3.0及以上版本中,guide_colorbar支持extend参数,可直接设置三角形标识:
extend = "both":颜色条上下限两端都加三角形extend = "min":仅下限端加三角形extend = "max":仅上限端加三角形extend.frac:可选参数,控制三角形长度占颜色条总长度的比例,默认值为0.05
完整示例代码
library(ggplot2) library(scales) # 构造示例数据 df <- expand.grid(x = 1:10, y = 1:10) df$value <- rnorm(100, mean = 5, sd = 5) # 绘图 ggplot(df, aes(x = x, y = y, fill = value)) + geom_tile() + scale_fill_viridis_c( na.value = "white", limits = c(0, 10), oob = squish, # 直接在scale内配置颜色条引导项 guide = guide_colorbar( extend = "both", extend.frac = 0.1 ) )
如果需要单独配置颜色条,也可以通过guides()函数实现:
ggplot(df, aes(x = x, y = y, fill = value)) + geom_tile() + scale_fill_viridis_c( na.value = "white", limits = c(0, 10), oob = squish ) + # 单独配置fill对应的颜色条 guides(fill = guide_colorbar(extend = "both", extend.frac = 0.1))
注意事项
该配置对填充色(fill)和描边色(color/colour)的颜色条都生效,可根据实际需求调整extend的取值。
内容的提问来源于stack exchange,提问作者Ruben
相关产品推荐
相关产品推荐

