如何在r中的plotly中的3D散点图中添加曲面(如轨迹生成的数学公式)?
我正在尝试学习如何使用R在Plotly中绘制三维散点图中的曲面 我试图扩展以下问题中给出的示例: 除此之外,我将示例从使用标准虹膜数据集改为使用随机簇,这些簇由一个二维平面用公式Z=-X-Y分隔 我得到一个错误:如何在r中的plotly中的3D散点图中添加曲面(如轨迹生成的数学公式)?,r,ggplot2,plotly,R,Ggplot2,Plotly,我正在尝试学习如何使用R在Plotly中绘制三维散点图中的曲面 我试图扩展以下问题中给出的示例: 除此之外,我将示例从使用标准虹膜数据集改为使用随机簇,这些簇由一个二维平面用公式Z=-X-Y分隔 我得到一个错误: Error in traces[[i]][[obj]] : attempt to select less than one element in get1index 所以我将数据设置为除以平面 rm(list=ls()) library(plotly) library(resh
Error in traces[[i]][[obj]] :
attempt to select less than one element in get1index
所以我将数据设置为除以平面
rm(list=ls())
library(plotly)
library(reshape2)
x <- rnorm(100,1,1)
y <- rnorm(100,1,1)
z <- rnorm(100,1,1)
col <- rep("red",100)
df.1 <- data.frame(x,y,z,col)
x <- rnorm(100,-1,1)
y <- rnorm(100,-1,1)
z <- rnorm(100,-1,1)
col <- rep("blue",100)
df.2 <- data.frame(x,y,z,col)
df<- rbind(df.1,df.2)
我得到的错误是:
Error in traces[[i]][[obj]] :
attempt to select less than one element in get1index
添加
inherit=FALSE
内部Add\u trace
:
p <- plot_ly(df, x = ~x, y = ~y, z = ~z, color = ~col, colors=c('#BF382A', '#0C4B8E')) %>%
add_markers() %>%
add_trace(z=surface2, x=axis_x, y=axis_y, type="surface", inherit=FALSE) %>%
layout(scene = list(xaxis = list(title = 'X'), yaxis = list(title = 'Y'),
zaxis = list(title = 'Z'), aspectmode='cube'))
print(p)
p%
添加_标记()%>%
添加_轨迹(z=surface2,x=axis_x,y=axis_y,type=“surface”,inherit=FALSE)%>%
布局(场景=列表(xaxis=列表(title='X'),yaxis=列表(title='Y')),
zaxis=list(title='Z'),aspectmode='cube'))
印刷品(p)
非常感谢您的回答@Marco Sandri--我成功了--我唯一的问题是将它嵌入knitr中,这是我以前能够做到的Hi@user1172468。很奇怪。你能分享你用来嵌入情节的代码吗?让我@Marco Sandri这样做——我在路上,今天晚些时候会做
p <- plot_ly(df, x = ~x, y = ~y, z = ~z, color = ~col, colors = c('#BF382A', '#0C4B8E')) %>%
add_markers() %>%
layout(scene = list(xaxis = list(title = 'X'),
yaxis = list(title = 'Y'),
zaxis = list(title = 'Z')))
add_trace(p,z=surface2,x=axis_x,y=axis_y,type="surface")
Error in traces[[i]][[obj]] :
attempt to select less than one element in get1index
p <- plot_ly(df, x = ~x, y = ~y, z = ~z, color = ~col, colors=c('#BF382A', '#0C4B8E')) %>%
add_markers() %>%
add_trace(z=surface2, x=axis_x, y=axis_y, type="surface", inherit=FALSE) %>%
layout(scene = list(xaxis = list(title = 'X'), yaxis = list(title = 'Y'),
zaxis = list(title = 'Z'), aspectmode='cube'))
print(p)