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

如何不使用ggplot2给火山数据填充等高线图添加最高点标记?

在Base R中为filled.contour添加火山最高点标记

当然可以不用ggplot2实现!用原生Base R工具就能轻松搞定,核心是先定位火山的最高点,再利用filled.contour的内置机制把标记加上去。下面是具体操作步骤和代码:

步骤1:定位火山最高点的坐标

首先我们需要找到volcano矩阵中最大值对应的行列位置:

# 获取最大值的线性索引
max_index <- which.max(volcano)
# 转换为矩阵的行列坐标(注意:矩阵的行对应y轴,列对应x轴)
max_coords <- arrayInd(max_index, dim(volcano))
# 提取对应x、y坐标
x_max <- max_coords[2]
y_max <- max_coords[1]

步骤2:在filled.contour图中添加标记点

filled.contour提供了plot.fun参数,允许我们在绘制完等高线图后,在同一个绘图区域内添加自定义元素。这样就能避免直接调用points()时出现的坐标错位问题(因为filled.contour会自动拆分绘图区和图例区)。完整代码如下:

filled.contour(volcano, 
               color.palette = terrain.colors, 
               asp = 0.5,
               plot.fun = function() {
                 # 添加红色实心圆点标记最高点,可按需调整样式
                 points(x = x_max, y = y_max, pch = 19, col = "red", cex = 1.5)
               })

额外调整建议

如果想让标记更醒目,可以修改点的样式参数:

  • pch:设置点的形状,比如pch = 8是五角星,pch = 21是带边框的实心点
  • col:设置点的颜色,比如"yellow"或"black"
  • cex:调整点的大小,比如cex = 2会让点放大一倍

内容的提问来源于stack exchange,提问作者R.K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:49:25