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

使用R语言plotly绘制与x/y轴相交的垂直平面问题求解

R语言Plotly绘制指定垂直相交平面解决方案

实现原理

当前代码生成倾斜平面的原因是:构造的z矩阵为固定取值的二维网格,所有点的z值仅随x轴变化,生成的是平行于y轴的倾斜平面,而非垂直于xy平面的目标平面。
要实现与x轴交于x=25、与y轴交于y=20的垂直平面,首先推导平面方程:该平面垂直于xy平面,满足截距式 x/25 + y/20 = 1,整理为 4x + 5y = 100,z可在任意取值范围内连续变化。

完整实现代码

library(plotly)
# 原有曲面数据
matrix22 <- c(
  c(5, 5.8, 6.2, 7.0),
  c(5, 5.8, 6.2, 7.0),
  c(5, 5.8, 6.2, 7.0),
  c(5, 5.8, 6.2, 7.0)
)
dim(matrix22) <- c(4,4)
x2 <- c(0,10,15,25)
y2 <- c(20,12,8,0)
rownames(matrix22) <- x2
colnames(matrix22) <- y2

# 构造垂直平面数据
# 匹配原有x轴范围设置平面x取值
x_plane <- seq(0, 25, length.out = 50)
# 覆盖原有曲面z区间设置平面z取值
z_plane <- seq(min(matrix22)-1, max(matrix22)+1, length.out = 50)
# 根据平面方程计算y矩阵,y值仅和x相关,与z无关
y_plane <- matrix(rep((100 - 4*x_plane)/5, length(z_plane)), nrow = length(x_plane))
# 构造z矩阵,z值随采样点连续变化
z_mat <- t(matrix(rep(z_plane, length(x_plane)), nrow = length(z_plane)))

# 叠加绘制两个曲面
g <- plot_ly() %>% 
  add_surface(z = ~matrix22, x = x2, y = y2, opacity = 0.7, name = "原有曲面") %>%
  add_surface(x = x_plane, y = y_plane, z = z_mat,
              opacity = 0.5, colorscale = "Reds", name = "垂直平面")
g

参数说明

  • opacity参数控制曲面透明度,调整后可更清晰观察两个曲面的交线
  • 可根据实际业务数据的范围,灵活调整x_plane和z_plane的取值区间与采样密度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:36:03