r - 如何使用 ggplotly 绘制 3D 图形?

我正在从这个 blog post 运行以下示例 绘制 3D 图表。代码运行没有任何错误,但输出不符合预期。 这是代码

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
}
qplot(x, y, data=pp(100), geom="tile", fill=z)
ggplotly()

这就是我所期望的

最佳答案

我安装了 plotly,从您的问题中复制了代码,它运行得非常好。但它确实不会返回您附加的 3D 图。原因是现在 ggplolty() 获取了您的 ggplot 并“转换为 plotly plot”。正如 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")

https://stackoverflow.com/questions/38441790/

相关文章:

shortcode - 如何获取联系表 7 的列表

laravel-5 - "entrust"命名空间中没有定义命令

xslt-2.0 - XSL :FO avoid Space between Table Cells

grails - 如何在grails中自定义spring security插件登录页面

solr - Sitecore 和 SolrCloud 开启重建

asp.net-mvc - EF 核心和 Azure

r - 添加一列,其中包含具有最大频率的对象的值

gcc - ARM ;内联汇编;使用暂存器;

amazon-web-services - CloudFormation 模板中元数据部分的用途是什

google-chrome-extension - 卸载 Chrome 扩展时打开新窗口