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

R语言lattice包wireframe函数绘制3D图无网格显示为空

问题原因

lattice::wireframe() 默认要求输入为规则网格数据,即所有x取值与y取值的交叉组合都存在对应的z值。你当前使用的是离散散点数据,x和y的组合存在大量缺失,无法生成网格面,因此出现空图问题。

解决方法

这里提供两种常用解决方案:

  • 方案1:对散点数据插值生成规则网格后绘图
    可以使用akima包的interp()函数做双线性插值,将不规则散点转换为规则网格数据,示例代码如下:
    # 加载依赖包
    library(lattice)
    library(akima)
    
    # 对原始散点做插值生成规则网格
    interp_res <- interp(
      x = df$x, y = df$y, z = df$z,
      xo = seq(min(df$x), max(df$x), length.out = 50),
      yo = seq(min(df$y), max(df$y), length.out = 50)
    )
    
    # 转换为wireframe支持的数据格式
    grid_df <- expand.grid(x = interp_res$x, y = interp_res$y)
    grid_df$z <- as.vector(interp_res$z)
    
    # 绘图
    wireframe(z ~ x * y, grid_df, scales = list(arrows = FALSE))
    
  • 方案2:更换适配散点数据的绘图函数
    如果你不需要拟合曲面,仅需要展示现有3D点的分布,直接使用你之前可以成功运行的cloud()函数绘制3D散点图即可,无需强制使用wireframe。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:09:03