【发布时间】:2020-04-09 08:44:09
【问题描述】:
为了在 plotly 中绘制带有 x、y、z 的曲面,我们可以使用函数 interp 创建数据(作为 plotly 中 add_surface 函数的输入)
This article给出解决方案。
我遵循不同的步骤。 通过以下代码,我们可以绘制带有标记的曲面。
library(akima)
library(plotly)
x=rep(seq(-1,5,0.2),time=31,each=1)
y=rep(seq(-1,5,0.2),time=1,each=31)
df=data.frame(x=x,y=y,
z=2*x+y-1.4)
fig <- plot_ly()%>% add_markers(data=df,x = ~x, y = ~y, z = ~z,
marker = list(color = "blue",
showscale = TRUE))
fig
我们可以看到下面的情节
然后我使用interp 为表面创建数据,并将表面与标记一起绘制。
s = interp(x = df$x, y = df$y, z = df$z)
fig <- plot_ly()%>%
add_surface(x = s$x, y = s$y, z = s$z)%>%
add_markers(data=df,x = ~x, y = ~y, z = ~z,
marker = list(color = "blue",
showscale = TRUE))
fig
我有以下图片。
我们可以看到结果不同。我不明白为什么。
当我尝试更改函数以生成 z 时,有时,两个曲面是相同的。比如对于这个data.frame
df=data.frame(x=x,y=y,
z=x+y+1)
我们有以下图像。我们可以看到,这一次,我们得到了相同的表面。
【问题讨论】: