2017-05-22 5 views
1

Nur ein kurzer Moment vor meiner Frage, wie man ein rgl in glänzend einzubetten von Mike beantwortet wurde, aber wir scheinen in einer anderen Frage gestolpert zu haben,RGL in R Shiny nicht auf dem linke Maustaste Drehen klicken

Dies ist das Codebeispiel:

library(rgl) 
library(car) 
library(shiny) 

cars$time <- cars$dist/cars$speed 

ui <- fluidPage(
    hr("how do we get the plot inside this app window rather than in a popup?"), 
    rglwidgetOutput("plot", width = 800, height = 600) 
) 

server <- (function(input, output) { 

    output$plot <- renderRglwidget ({ 
    rgl.open(useNULL=F) 
    scatter3d(x=cars$speed, y=cars$dist, z=cars$time, surface=FALSE, ellipsoid = TRUE) 
    rglwidget() 

    }) 

    }) 
shinyApp(ui = ui, server = server) 

Ändern rgl.open(useNULL=F)-rgl.open(useNULL=T) wird das Popup aus zeigt, aber in jedem Fall die rgl in der glänzenden Seite tut ZOOM stoppen, aber nicht dreht.

Es scheint, dass die rechte Maustaste Register und arbeitet, während der linken Maustaste wird nicht erkannt ....

> sessionInfo() 
R version 3.3.3 (2017-03-06) 
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] shiny_1.0.0 car_2.1-4 rgl_0.97.0 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.9  knitr_1.15.1  magrittr_1.5  splines_3.3.3  MASS_7.3-45  xtable_1.8-2  lattice_0.20-34 
[8] R6_2.2.0   minqa_1.2.4  tools_3.3.3  nnet_7.3-12  pbkrtest_0.4-7  parallel_3.3.3  grid_3.3.3   
[15] nlme_3.1-131  mgcv_1.8-17  quantreg_5.33  MatrixModels_0.4-1 htmltools_0.3.5 yaml_2.1.14  lme4_1.1-13  
[22] digest_0.6.11  Matrix_1.2-8  nloptr_1.0.4  htmlwidgets_0.8 mime_0.5   SparseM_1.77  jsonlite_1.2  
[29] httpuv_1.3.3  
+1

Würde wahrscheinlich helfen, wenn Sie die Ausgabe von 'sessionInfo()' zum Beitrag hinzugefügt haben. –

Antwort

3

Ihre Szene mouseMode „polar“ wird mit (wahrscheinlich, weil scatter3d es setzt). Dieser Modus ist derzeit nicht im rglwidget-Code implementiert.

Eine Abhilfe besteht darin, die mouseMode auf „Trackball“ vor dem Aufruf rglwidget() eingestellt werden, z.B. in Ausgabe $ Plot setzen Sie dies:

Hinweis meine Bearbeitung: Ich habe den obigen Code vereinfacht. Um die linke Maustaste zu setzen, geben Sie einfach eine Komponente von mouseMode an.

Eine andere Bearbeitung: Die neueste Version von rgl ist 0.98.8, verfügbar auf R-Schmiede und möglicherweise anderswo schließlich (siehe How do I install the latest version of rgl?), hat jetzt Unterstützung für "polare" Maus Handhabung. Es ist nicht identisch mit dem Verhalten in R, aber es ist nah dran.

+0

funktioniert gut! danke – Mark

+0

Ich habe einen anderen Fehler user2554330 gefunden. Irgendeine Chance, dass ich dich für die Unterstützung erreichen kann? – Mark

+0

Sie sollten Fehlerberichte auf der Seite für den rgl-Fehlerbericht veröffentlichen. Das würde von 'bug.report (package =" rgl ")' aufgelistet werden. – user2554330

Verwandte Themen