如何使用scale_fill_gradientn设置地图图例的指定数值刻度
用scale_fill_gradientn自定义热力图图例间隔
完全可以通过scale_fill_gradientn实现你要的需求,只需要在函数里添加几个参数来指定刻度间隔和颜色映射比例就行。
修改后的代码如下:
volcano %>% reshape2::melt(varnames=c("x", "y")) %>% as_tibble() %>% ggplot(aes(x,y, fill=value)) + geom_tile() + scale_fill_gradientn( colours=hcl.colors(15, palette = "Purple-Green"), limits=c(50,200), # 把指定数值转换成0-1的比例:(目标值-最小值)/(最大值-最小值) values = c(0, 1/6, 2/6, 3/6, 4/6, 5/6, 1), breaks = c(50,75,100,125,150,175,200), labels = c("50","75","100","125","150","175","200") )
参数说明:
values:这里把你要的间隔数值转换成0到1之间的比例(比如75对应的比例是(75-50)/(200-50)=1/6≈0.1667),这样颜色渐变会严格按照你指定的间隔来分配。breaks:设置图例上要显示的刻度点,就是你指定的50、75这些数值。labels:对应breaks显示文本标签,这里直接用数值字符串就行。
内容的提问来源于stack exchange,提问作者Velton Sousa
相关产品推荐
相关产品推荐

