如何在R语言tmap包的图例直方图中添加坐标轴标签?
为tmap图例直方图添加坐标轴标签
tmap包默认未在tm_polygons中直接提供设置直方图坐标轴标签的参数,但可以通过tm_layout的legend.hist.args参数,将标签参数传递给底层绘制直方图的hist()函数,快速实现需求。
最简解决代码
library(tmap) data(World) tm_shape(World) + tm_polygons("gdp_cap_est", style = "quantile", palette = "RdYlBu", legend.hist = TRUE) + tm_layout(legend.hist.args = list(xlab = "人均GDP", ylab = "数量"))
补充说明
legend.hist.args接受一个参数列表,其中的参数会直接传递给R基础绘图的hist()函数。除了xlab(横轴标签)和ylab(纵轴标签),还可以设置main(直方图标题)、cex.lab(标签字体大小)等hist()支持的参数。- 如果因tmap版本差异导致上述方法不生效,可通过
grid包手动定位添加标签:
library(tmap) library(grid) data(World) # 生成tmap对象并转换为grid图形元素 tm_obj <- tm_shape(World) + tm_polygons("gdp_cap_est", style = "quantile", palette = "RdYlBu", legend.hist = TRUE) tm_grob <- tmap_grob(tm_obj) # 绘制图形并手动添加标签(坐标需根据自身图例位置微调) grid.newpage() grid.draw(tm_grob) grid.text("人均GDP", x = 0.92, y = 0.12, just = "center", gp = gpar(fontsize = 10)) grid.text("数量", x = 0.88, y = 0.5, just = "center", rot = 90, gp = gpar(fontsize = 10))
内容的提问来源于stack exchange,提问作者Choo Jacqueline
相关产品推荐
相关产品推荐

