如何解决tmap中图例文本、直方图过小及相关报错问题
tmap地图问题解决方案
图例文字/直方图尺寸调整(解决报错)
- 图例说明文字:使用
tm_layout(legend.text.size = 1.2)调整(数值按需修改),注意tmap中不存在legend.hist.size参数,不要用这个参数 - 直方图文字(轴标签、刻度):在
tm_histogram()里设置text.size参数,示例:tm_histogram(text.size = 1.1) - 图例标题(包含直方图的图例标题):用
tm_layout(legend.title.size = 1.3)统一调整大小
图例与直方图字体不一致
- 全局统一字体:通过
tm_layout(fontfamily = "Arial")设置全局字体(替换为你需要的字体类型) - 直方图同步字体:在
tm_histogram()中添加fontfamily = "Arial",确保和全局字体参数一致
地块间灰色轮廓消除
- 矢量图层(如
tm_polygons())中设置border.col = NA,直接去掉边界;如果需要保留边界,可设置为与填充色一致的颜色,示例:border.col = "#ffffff" - 制作系列地图时,要确保所有子图的边界参数统一设置,避免部分子图残留灰色轮廓
示例代码
library(tmap) data(World) # 人口分布子图 map_pop <- tm_shape(World) + tm_polygons("pop_est", border.col = NA) + tm_histogram("pop_est", text.size = 1.1, fontfamily = "Arial") + tm_layout( legend.text.size = 1.2, legend.title.size = 1.3, fontfamily = "Arial" ) # 人均GDP分布子图 map_gdp <- tm_shape(World) + tm_polygons("gdp_cap_est", border.col = NA) + tm_histogram("gdp_cap_est", text.size = 1.1, fontfamily = "Arial") + tm_layout( legend.text.size = 1.2, legend.title.size = 1.3, fontfamily = "Arial" ) # 组合系列地图 tmap_arrange(map_pop, map_gdp)
内容的提问来源于stack exchange,提问作者tchoup
相关产品推荐
相关产品推荐

