R语言plotly三维图添加自定义平面:不同数据框合并问题求解
在Plotly中合并基于不同数据框的三维散点图与自定义平面
你可以通过add_trace()方法将两个基于不同数据框的Plotly图层合并,该方法允许你为新图层单独指定数据源,无需依赖主图的数据框。以下是完整的实现代码:
library(plotly) Data_Frame <- iris # 初始化三维散点图 Plot_1 <- plotly::plot_ly(Data_Frame, x = ~Sepal.Length, y = ~Petal.Length, z = ~Petal.Width) # 生成自定义平面的数据 x_Values <- c(min(Data_Frame$Sepal.Length), max(Data_Frame$Sepal.Length)) y_Values <- c(min(Data_Frame$Petal.Length), max(Data_Frame$Petal.Length)) Points_in_the_Plane <- expand.grid(x_Values, y_Values) colnames(Points_in_the_Plane) <- c('x', 'y') Points_in_the_Plane$z <- rep(0, nrow(Points_in_the_Plane)) # 将平面图层添加到散点图中 Plot_combined <- Plot_1 %>% add_trace( data = Points_in_the_Plane, x = ~x, y = ~y, z = ~z, type = 'mesh3d', opacity = 0.5, inherit = FALSE # 禁用继承主图的数据映射,使用当前图层的数据源 ) # 展示合并后的图表 Plot_combined
关键说明:
add_trace()支持独立传入data参数,直接关联平面数据框,无需与散点图的数据框统一inherit = FALSE是核心设置:它会阻止新图层继承主图的变量映射规则,确保平面图层使用自身数据框中的字段,避免因变量名或数据结构差异导致的错误- 合并后的
Plot_combined包含了散点图和自定义平面两个图层,可正常交互查看
内容的提问来源于stack exchange,提问作者David Moore
相关产品推荐
相关产品推荐

