然而,当我今天再试一次 - 我只能用鼠标放大和缩小,不能旋转图形。我还检查了我之前制作并用于工作的降价文件,我也遇到了同样的问题。这种情况发生在Rstudio"浏览器" thingy(你编织后弹出的东西)以及Chrome中的东西。
这里有两个例子,一个是rgl包,另一个是car包,两个都不适合我(都曾经用过):
```{r setup}
library(knitr)
library(rgl)
knit_hooks$set(webgl = hook_webgl)
```
```{r, rgl=TRUE}
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
```
```{r setup}
library(knitr)
library(rgl)
knit_hooks$set(webgl = hook_webgl)
```
```{r testgl, webgl=TRUE}
library(car)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
scatter3d(x, y, z , point.col = "blue", surface=FALSE, xlab = "", ylab = "C", zlab = "")
```
我使用Rstudio 0.99.489,我已经更新了所有软件包并使用R 3.2.3
sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] car_2.1-1 rgl_0.95.1441
loaded via a namespace (and not attached):
[1] Rcpp_0.12.3 lattice_0.20-33 digest_0.6.9 MASS_7.3-45 grid_3.2.3 MatrixModels_0.4-1
[7] nlme_3.1-122 SparseM_1.7 minqa_1.2.4 nloptr_1.0.4 Matrix_1.2-3 rmarkdown_0.9.2
[13] splines_3.2.3 lme4_1.1-10 tools_3.2.3 parallel_3.2.3 pbkrtest_0.4-6 yaml_2.1.13
[19] mgcv_1.8-9 htmltools_0.3 nnet_7.3-11 quantreg_5.19
谢谢大家的帮助
答案 0 :(得分:3)
在联系谢毅辉博士(knitr
开发人员)和John Fox教授(car
开发人员)之后,我认为我可以发布两个方案来解决这个问题。
注意:这些解决方案都是谢博士和Fox教授所做的工作的结果,我想用这个平台感谢他们抽出时间回答我的问题。< / p>
在调用next3d()
之前立即调用scatter3d()
会创建一个可以在HTML中缩放和旋转的绘图。以这个简单的代码为例:
```{r setup}
library(knitr)
library(rgl)
knit_hooks$set(webgl = hook_webgl)
```
```{r, webgl=TRUE}
library(car)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
next3d()
scatter3d(x, y, z, col=rainbow(1000))
```
Fox教授修改了scatter3d()
函数以自行调用next3d()
(而不是rgl.clear()
),因此无需在每次调用{next3d()
之前手动调用scatter3d()
{1}}。我已经在我的Windows机器上测试了它,并且可以报告它有效。
要安装修改后的包使用:
install.packages("car", repos="http://R-Forge.R-project.org")
答案 1 :(得分:2)
尝试使用threejs
它没有问题,IMO看起来更好
```{r, echo=FALSE}
library(threejs)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
scatterplot3js(x, y, z, color=rainbow(1000), renderer="canvas")
```
答案 2 :(得分:1)
首先尝试安装rglwidget包install.packages('rglwidget')
接下来,在代码块之间添加空格
时,示例1似乎有效```{r setup}
library(knitr)
library(rgl)
knit_hooks$set(webgl = hook_webgl)
```
```{r, webgl=TRUE}
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
```
我不确定为什么示例二不再工作