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

标签 r ggplot2 plotly

我正在从这个 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()

这就是我所期望的 enter image description here

最佳答案

我安装了 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")

关于r - 如何使用 ggplotly 绘制 3D 图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441790/

相关文章:

r - 为什么我的 3D 绘图没有显示在 R Studio 绘图查看器中?

r - 将图例添加到多直方图 ggplot

r - 如何正确使用 aes 为 ggplot2 中的绘图编写函数?

python - 如何在 Plotly 中循环创建子图,其中每个子图上都有几条曲线?

r - 是否可以列出可以为包设置的所有全局选项?

json - 将 geojson/json 文件读入 R 以便在 map 上绘制时遇到问题

R:将相同的行合并为一个(最好使用 dplyr/tidyr)

r - 当超过 6 个因子水平时循环通过点形状

javascript - 从 plotly.js 图中删除所有痕迹

python - Plotly:带有下拉菜单和按组颜色的散点图