如何在ggplot2的guide_colorsteps中自定义标签并保留默认配色?
解决方案
要保留geom_contour_filled的默认配色同时自定义色条标签,无需手动指定颜色值,直接针对默认使用的离散填充刻度(scale_fill_viridis_d)修改标签即可:
require(ggplot2) fun_lab <- function(x) { x[!(x %in% c("1", "2", "3"))] <- "" # 匹配默认标签的字符串格式 return(x) } ggplot(data=faithfuld, aes(x=waiting, y=eruptions)) + geom_contour_filled(aes(z=100*density), show.legend=T) + scale_fill_viridis_d( labels = fun_lab, guide = guide_colorsteps(direction="horizontal", title.position="top") ) + theme(legend.position="top")
关键说明:
geom_contour_filled默认采用viridis色系的离散填充刻度(scale_fill_viridis_d),直接修改该刻度的labels参数,就能在保留默认配色的同时实现标签自定义。- 默认标签为字符串格式(如
"1"而非数值1),因此fun_lab中的匹配需使用字符串值。 - 无需指定
values参数,完全继承ggplot2的默认配色逻辑。
内容的提问来源于stack exchange,提问作者Bryan
相关产品推荐
相关产品推荐

