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

使用grDevices::terrain.colors()绘制LAS报错,如何手动选RGL窗口颜色?

lidR包点云绘图pal参数报错解决方案

问题背景

  • 本地运行脚本仅弹出警告,可正常生成点云图;同事电脑及远程桌面运行同一脚本直接报错
  • 绘图代码:
    lidR::plot(las, size=5, pal=grDevices::terrain.colors(30), axis=TRUE)
    
  • 报错信息:
    Error in is.character(pal) && pal == "auto" : 'length = 30' in coercion to 'logical(1)'
    

解决方法

这个错误是不同版本lidR对pal参数的要求不一致导致的——旧版本要求pal必须是调色板名称(字符型),而非直接传入颜色向量。

  • 方法1:使用调色板名称替代颜色向量
    把直接生成的颜色向量换成调色板名称,让lidR内部处理颜色生成,还能通过ncolors指定颜色数量:

    # 基础用法
    lidR::plot(las, size=5, pal="terrain", axis=TRUE)
    # 指定30种颜色
    lidR::plot(las, size=5, pal="terrain", ncolors=30, axis=TRUE)
    

    其他可用调色板名称如"viridis"、"heat"等,和R基础调色板名称对应。

  • 方法2:手动指定颜色映射(适配新版lidR)
    如果统一升级到新版lidR,可通过color参数直接传入自定义颜色向量:

    # 提取点云的Z值作为颜色映射依据
    z_vals <- las@data$Z
    # 将Z值分段后匹配自定义颜色
    custom_colors <- grDevices::terrain.colors(30)[cut(z_vals, breaks=30)]
    # 传入color参数绘图
    lidR::plot(las, size=5, color=custom_colors, axis=TRUE)
    
  • 方法3:统一环境包版本
    用sessionInfo()查看本地正常运行的lidR版本,让同事和远程桌面安装完全相同的版本,从根源避免版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:05:01