You need to enable JavaScript to run this app. R语言基于oce包绘制地图的网格标签、点位标注、导出与样式调整问题
优惠活动
大模型
产品
解决方案
定价
更多

R语言基于oce包绘制地图的网格标签、点位标注、导出与样式调整问题

核心认知

所用oce包的mapPlot/mapPoints系列函数属于base R绘图体系,并非ggplot2体系,所有语法遵循base R规则——这是ggsave无输出、传入size参数报错的根本原因。
现有代码存在一处笔误:mapPoints中引用的snowpit$lat未定义,需替换为已定义的cord$lat才能正常运行。

具体操作方案

1. 地图保存方法

base R绘图无需使用ggsave,需通过图形设备完成输出,将所有绘图代码夹在设备开启与关闭语句之间即可,适合报告打印的高分辨率输出示例:

# 打开tiff格式输出设备,设置600dpi分辨率匹配印刷要求
tiff("antarctic_map.tiff", units="cm", width=12, height=12, res=600, compression="lzw")

# ---------------------- 在此处放置所有绘图代码 ----------------------
library(oce)    
lat <- c(-77.2, -79.7, -80.7, -80.6)
long <- c(123.5, 126.1, 122.2, 121.6)
cord <- data.frame(lat, long)

par(mar=c(1.5, 1.5, 0.5, 0.5))
mapPlot(coastlineWorld, longitudelim=c(-180, 180), latitudelim=c(-90, -70),
        projection="+proj=stere +lat_0=-90", col='gray', grid=FALSE)
# 嵌入后续网格、点位、标签代码
# -------------------------------------------------------------------

dev.off() # 关闭设备,文件自动写入指定路径

2. 点位文本标签添加

使用oce包自带的mapText()函数,该函数会自动将经纬度坐标转换为当前极射投影的平面坐标,不会出现偏移,无需手动处理投影转换:

# 自定义每个点位对应的标签,可根据实际点位名称修改
point_labels <- c("SP1", "SP2", "SP3", "SP4")
mapText(x=cord$long, y=cord$lat, labels=point_labels,
        pos=3, # 标签位于点位上方,避免遮挡标识点
        cex=0.8, # 标签字体大小
        col="black")

3. 网格刻度可读性优化

通过调整mapGrid()内置参数即可实现经度标签均匀分布在图幅外圈、纬度标签沿同心圆(等纬圈)排布的效果,无需手动逐个放置标签:

mapGrid(dlongitude = 30,
        dlatitude = 5,
        col = "darkgray",
        lty = "solid",
        lwd = 0.5,
        longitudeLabels = TRUE, # 开启经度标签显示
        longTickSide = "outer", # 经度标签固定在图幅外边缘均匀分布
        latitudeLabels = TRUE, # 开启纬度标签显示
        latTickSide = "inner", # 纬度标签沿同心圆内侧排布
        labelcex = 0.6, # 刻度标签字体大小
        col.ticks = "darkgray")

如需自定义标签格式(如增加方位后缀),可将longitudeLabels参数传入格式化后的文本向量实现。

4. 点位大小调整

base R体系中通过cex参数控制点位缩放比例,而非ggplot2体系的size参数:

# cex为相对默认大小的缩放系数,>1放大、<1缩小
mapPoints(cord$long, cord$lat, pch=2, col="black", cex=1.2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 01:36:03