R语言绘制地图时经纬度轴未显示,如何使其显示?
解决ggplot2绘制sf全球地图不显示经纬度轴数值的问题
你只需在绘图代码中添加坐标轴刻度设置,并确保轴文本可见,修改后的代码如下:
library("ggplot2") library("sf") library("rnaturalearth") library("rnaturalearthdata") world <- ne_countries(scale = "medium", returnclass = "sf") ggplot(data = world) + geom_sf() + # 设置经度轴刻度,每隔60度显示一个刻度 scale_x_continuous(breaks = seq(-180, 180, 60)) + # 设置纬度轴刻度,每隔30度显示一个刻度 scale_y_continuous(breaks = seq(-90, 90, 30)) + # 确保轴文本可见(默认可能因全局主题或坐标系设置被隐藏) theme(axis.text = element_text(color = "black"))
原理说明
- 绘制sf对象时,
ggplot2默认使用coord_sf()处理地理坐标系,对于全球范围的地图,默认可能不显示轴刻度标签,通过scale_x_continuous()和scale_y_continuous()可以手动指定刻度间隔。 - 如果你的R环境全局主题设置了轴文本透明或隐藏,
theme(axis.text = element_text(color = "black"))可以强制显示轴文本。
你也可以通过显式调用coord_sf()配合坐标轴设置实现相同效果:
ggplot(data = world) + geom_sf() + coord_sf(expand = FALSE) + scale_x_continuous(breaks = seq(-180, 180, 60)) + scale_y_continuous(breaks = seq(-90, 90, 30))
内容的提问来源于stack exchange,提问作者tassones
相关产品推荐
相关产品推荐

