You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除ggplot地图刻度的N/W标识及方框并修正经度显示?

处理ggplot+rnaturalearth地图刻度标签的格式问题

问题场景

用rnaturalearth加载底图后,ggplot生成的地图刻度会自带N、W标识和方框,需要把这些多余元素去掉,同时将经度调整为-0至-70的负数格式。

解决方案

通过自定义刻度标签函数,配合scale_x_continuous和scale_y_continuous替换默认的地理格式标签,同时调整主题样式移除方框:

library(tidyverse)
library(rnaturalearth)

world <- ne_countries(scale = "medium", returnclass = "sf")

# 自定义经度标签:转成负数格式,去掉W标识
format_lon <- function(x) {
  # 把原本的西经正数转为带负号的格式
  ifelse(x > 0, paste0("-", x), as.character(x))
}

# 自定义纬度标签:去掉N标识,直接输出数值
format_lat <- function(x) as.character(x)

ggplot() +
  geom_sf(data = world, colour = NA, fill = "grey75") +
  coord_sf(ylim = c(43, 72), xlim = c(-68, -2)) +
  # 应用自定义刻度标签
  scale_x_continuous(labels = format_lon) +
  scale_y_continuous(labels = format_lat) +
  labs(x = "", y = "") +
  theme_bw() +
  # 移除刻度旁的方框(部分主题默认带的边框)
  theme(
    axis.text.x = element_text(margin = margin(t = 6)),
    axis.text.y = element_text(margin = margin(r = 6))
  )

关键说明

  1. 经度格式调整:format_lon函数把原本显示为正数的西经数值转为带负号的字符串,直接覆盖默认的"W"标识格式
  2. 移除纬度标识:format_lat函数直接输出纬度数值,去掉默认的"N"标识
  3. 移除方框:通过theme调整坐标轴文本的边距,消除部分主题自带的刻度方框样式

内容的提问来源于stack exchange,提问作者tnt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:47:23