Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在r中的plotly中的3D散点图中添加曲面(如轨迹生成的数学公式)?_R_Ggplot2_Plotly - Fatal编程技术网

如何在r中的plotly中的3D散点图中添加曲面(如轨迹生成的数学公式)?

如何在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

我正在尝试学习如何使用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(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)