如何使用 ggplotly 绘制 3D 图形?
How to plot 3D graphs with ggplotly?
我是运行下面这个例子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
,从您的问题中复制了代码,运行 非常好。但它确实 return 您附加的 3D 图。原因是现在 ggplolty()
使用了你的 ggplot 和 "transforms into a plotly plot"。博客中给出的示例 - post 很可能已贬值,正如 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")
我是运行下面这个例子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
,从您的问题中复制了代码,运行 非常好。但它确实 return 您附加的 3D 图。原因是现在 ggplolty()
使用了你的 ggplot 和 "transforms into a plotly plot"。博客中给出的示例 - post 很可能已贬值,正如 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")