首页 > 解决方案 > R:3D 散点图未显示在 Web 浏览器中

问题描述

在我创建自己的一些 3D 散点图之前,我正在尝试按照这里的教程进行操作。

# library
library(rgl)
options(rgl.printRglwidget = TRUE)

# This is to output a rgl plot in a rmarkdown document. Note that you must add webgl=TRUE, results='hide' in the chunck header
library(knitr)
knit_hooks$set(webgl = hook_webgl)

# Data: the iris data is provided by R
data <- iris

# Add a new column with color
mycolors <- c('royalblue1', 'darkcyan', 'oldlace')
data$color <- mycolors[ as.numeric(data$Species) ]

# Plot
par(mar=c(0,0,0,0))
plot3d( 
  x=data$`Sepal.Length`, y=data$`Sepal.Width`, z=data$`Petal.Length`, 
  col = data$color, 
  type = 's', 
  radius = .1,
  xlab="Sepal Length", ylab="Sepal Width", zlab="Petal Length")


writeWebGL( filename="3dscatter.html" ,  width=600, height=600)

但是,在这样做之后,似乎发生了两件事。首先,我收到以下警告:

Warning messages:
1: In snapshot3d(scene = x, width = width, height = height) :
  webshot = TRUE requires the webshot2 package; using rgl.snapshot() instead
2: In rgl.snapshot(filename, fmt, top) :
  this build of rgl does not support snapshots

我不知道这是什么意思,snapshot因为这不在我的代码中。第二件事是在我运行之后,一个名为的文件3dscatter.html出现在我的工作目录中,但是我转到浏览器,我没有看到我的情节。Javascript 已启用。有人可以帮我弄清楚我在这里缺少什么吗?

在此处输入图像描述

标签: rrgl

解决方案


@IRTFM 的建议奏效了。我换了行:

writeWebGL( filename="3dscatter.html" , width=600, height=600)

htmlwidgets::saveWidget(rglwidget(), filename)


推荐阅读