如何为statebins绘制的州级热力图添加计数标签?
如何给statebins生成的州级热力图添加自定义标签?
你已经通过statebins包生成了州级热力图,想要为每个州的bin添加提前准备在lab列中的标签(包含州缩写和数值),原始代码如下:
library(statebins) dat = data.frame(state = state.abb, val = rep(0:24, 2)) dat$lab = paste(dat$state, dat$val, sep = "\n") head(dat) # state val lab # 1 AL 0 AL\n0 # 2 AK 1 AK\n1 # 3 AZ 2 AZ\n2 # 4 AR 3 AR\n3 # 5 CA 4 CA\n4 # 6 CO 5 CO\n5 sb = statebins(dat, state_col = "state", value_col = "val") + theme_statebins() sb

解决方案
statebins基于ggplot2实现,因此可以直接叠加geom_text()图层来添加标签,只需将lab列映射到label参数即可,同时可调整标签的颜色、大小等样式以适配热力图:
library(statebins) library(ggplot2) # 若未加载ggplot2需先加载 dat = data.frame(state = state.abb, val = rep(0:24, 2)) dat$lab = paste(dat$state, dat$val, sep = "\n") sb = statebins(dat, state_col = "state", value_col = "val") + geom_text(aes(label = lab), color = "white", size = 3) + # 添加标签层 theme_statebins() sb
说明
geom_text(aes(label = lab))会自动匹配statebins生成的每个州的坐标位置,将lab列的内容作为标签显示在对应bin的中心- 调整
color参数可以让标签和热力图的颜色形成对比(比如白色在深色背景上更清晰),size参数可控制标签字体大小,根据需求调整即可
内容的提问来源于stack exchange,提问作者Gregor Thomas
相关产品推荐
相关产品推荐

