我从这个blog post运行以下示例 绘制3D图表。代码运行没有任何错误,但输出不是预期的。 这是代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>a</td>
<td>0</td>
<td><span>xxx</span>
</td>
</tr>
<tr>
<td>b</td>
<td>0</td>
<td><span>xxx</span>
</td>
</tr>
<tr>
<td>c</td>
<td>0</td>
<td><span>xxx</span>
</td>
</tr>
</table>
答案 0 :(得分:4)
我安装了plotly
,从您的问题中复制了代码并且运行得非常好。但它确实没有返回您附加的3D图。原因是现在ggplolty()
采用你的ggplot并“转换为情节图”。正如B. Bolker在评论中所说的那样,博客文章中给出的例子很可能会被贬值。
然而,这有一个好处。 plotly
仍有表面图选项(请参阅:plotly-documentation)。这意味着您可以使用以下代码重新创建示例:
library(reshape2)
library(plotly)
#
pp <- function (n,r=4) {
x <- seq(-r*pi, r*pi, len=n)
df <- expand.grid(x=x, y=x)
df$r <- sqrt(df$x^2 + df$y^2)
df$z <- cos(df$r^2)*exp(-df$r/6)
df
}
data_xyz <- pp(100)
data_z <- acast(data_xyz, x~y, value.var = "z")
plot_ly(z = data_z, type = "surface")