timelyportfolio / svgPanZoom

R htmlwidget for svg-pan-zoom.js | if you plot it, it will zoom
http://www.buildingwidgets.com/blog/2015/1/15/week-02-
Other
44 stars 7 forks source link

Difficulities to run the Shiny example #17

Open frajuegies opened 7 years ago

frajuegies commented 7 years ago

Dear all,

I have tried your Shiny sample code ... but I am getting the below mentioned error message. Have I missed something ?

Thank you very much for your help.... It would be great to have the tool for the interaction with a dendogram.

Best regards, Jürgen

library(shiny)
library(svglite)
library(svgPanZoom)
library(ggplot2)

ui <- shinyUI(bootstrapPage(

  svgPanZoomOutput(outputId = "main_plot")

))

server = shinyServer(function(input, output) {
  output$main_plot <- renderSvgPanZoom({
    p <- ggplot() + geom_point(data=data.frame(faithful),aes(x=eruptions,y=waiting)) + stat_density2d(data=data.frame(faithful),aes(x=eruptions,y=waiting, alpha =..level..),geom="polygon") + scale_alpha_continuous(range=c(0.05,0.2))
    svgPanZoom(p, controlIconsEnabled = T)
  })
})

runApp(list(ui=ui,server=server))

Error Message Listening on http://127.0.0.1:3278 Warning in svgPanZoom(p, controlIconsEnabled = T) : for best results with ggplot2 and lattice, please install gridSVG Warning: package ‘gdtools’ was built under R version 3.3.2 Warning: Error in : '' does not exist in current working directory ('C:/Users/u991726/Documents'). Stack trace (innermost first): 84: check_path 83: path_to_connection 82: read_xml.character 81: xml2::read_xml 80: svglite::xmlSVG 79: svgPanZoom 78: func [#4] 77: origRenderFunc 76: output$main_plot 1: runApp

sessionInfo(): R version 3.3.1 (2016-06-21) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1

locale: [1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] gdtools_0.1.3 ggplot2_2.2.1 svgPanZoom_0.3.3 svglite_1.2.0 shiny_0.14

loaded via a namespace (and not attached): [1] Rcpp_0.12.6 assertthat_0.1 digest_0.6.10 mime_0.5 plyr_1.8.4 grid_3.3.1 R6_2.1.2 xtable_1.8-2
[9] jsonlite_1.0 gtable_0.2.0 scales_0.4.1 lazyeval_0.2.0 xml2_1.0.0 tools_3.3.1 htmlwidgets_0.8 munsell_0.4.3
[17] httpuv_1.3.3 yaml_2.1.13 colorspace_1.2-6 htmltools_0.3.5 tibble_1.2

timelyportfolio commented 7 years ago

@frajuegies glad you are using. This is likely due to some complication with gridSVG. Try this instead and let me know. Unfortunately, svglite did not exist when I originally wrote svgPanZoom.

library(shiny)
library(svglite)
library(svgPanZoom)
library(ggplot2)

ui <- shinyUI(bootstrapPage(

  svgPanZoomOutput(outputId = "main_plot")

))

server = shinyServer(function(input, output) {
  output$main_plot <- renderSvgPanZoom({
    p <- ggplot() + geom_point(data=data.frame(faithful),aes(x=eruptions,y=waiting)) + stat_density2d(data=data.frame(faithful),aes(x=eruptions,y=waiting, alpha =..level..),geom="polygon") + scale_alpha_continuous(range=c(0.05,0.2))
    svgPanZoom(
      # key here is using print(p) instead of just p
      svglite::stringSVG(print(p),standalone=F),
      controlIconsEnabled = T
    )
  })
})

runApp(list(ui=ui,server=server))

You also might want to use viewBox = FALSE argument to svgPanZoom if you plan to use a browser other than RStudio Viewer.

frajuegies commented 7 years ago

Great, the example is working as expected ! Thank you very much for your very fast answer !

Now I will insert this capability in my Shiny app....

Once again, thank you and best regards,

Jürgen