R 如何使用ggplotly绘制三维图形?

R 如何使用ggplotly绘制三维图形?,r,ggplot2,plotly,R,Ggplot2,Plotly,我正在运行下面这个例子 绘制三维图表。代码运行时没有任何错误,但输出不符合预期。 这是密码 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 } qpl

我正在运行下面这个例子 绘制三维图表。代码运行时没有任何错误,但输出不符合预期。 这是密码

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()
library(plotly)

pp我安装了
plotly
,从您的问题中复制了代码,它运行得非常好。但它确实不会返回您附加的3D绘图。原因是现在
ggplolty()
获取ggplot并“转换为plotly plot”。正如B.Bolker在评论中所说,博客文章中给出的例子很可能被贬低了

然而,这也有好处
plotly
仍然具有曲面打印的选项(请参见:)。这意味着您可以使用以下代码重新创建示例:

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")
library(重塑2)
图书馆(绘本)
#

pp请定义
py
。我猜您只是想运行
ggplotly()
。它似乎出了什么问题?它会产生错误吗?如果是,错误说明了什么?你看到一个看起来不对劲的情节了吗?你的R会话崩溃了吗?@Gregor很抱歉,现在应该更清楚了。当我运行你的代码时,我收到了一堆弃用错误
plotly
发展非常快,这篇博客文章已经有几年了,大概有一种新的正确语法来做这件事??如果我正确理解了我链接的博文,那实际上就是我运行该代码应该得到的输出。@Dambo嘿,谢谢你的澄清。请看我编辑的答案。我希望它能告诉你你想知道的!如果有的话告诉我谢谢。对于任何注意到我发布的图片与您的解决方案之间存在任何差异的人:在图片中,图形是颠倒的。