绘制SF数据时轴标签显示十进制度而非NZTM坐标的问题
问题解决:ggplot2绘制NZTM坐标时轴标签显示十进制度的修复
问题原因
你的gpx_valley已经成功转换为NZTM2000(CRS:2193)坐标,但绘图时重复通过coord_sf(crs=st_crs(2193))指定坐标系,干扰了ggplot对sf数据原生CRS的识别,导致轴标签错误显示为地理坐标的十进制度。同时,默认轴刻度格式也不适合NZTM的大数值坐标。
解决方案
- 移除
coord_sf中的crs指定(数据已是目标CRS,ggplot会自动适配); - 使用
scale_x_sf和scale_y_sf手动设置轴标签格式,让大数值坐标以易读的整数形式显示。
修改后的绘图代码
ggplot() + geom_sf(data = gpx_valley, color = "blue", size = 3) + # 设置轴标签为逗号分隔的整数格式,适配NZTM坐标 scale_x_sf(labels = scales::comma) + scale_y_sf(labels = scales::comma) + labs(title= "Rapaki Valley 100 Points", x="Easting (NZTM)", y="Northing (NZTM)")+ theme_minimal()
额外验证
如果仍有疑问,可再次确认数据的坐标值:
# 提取NZTM坐标并查看前5行 head(st_coordinates(gpx_valley))
正常情况下,输出的X(Easting)应在100000-700000之间,Y(Northing)在4000000-6000000之间,这符合NZTM2000的坐标范围。
内容的提问来源于stack exchange,提问作者Dane Verharen
相关产品推荐
相关产品推荐

