Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plots not showing (no error) #2824

Closed
Etjean opened this issue Apr 16, 2020 · 11 comments
Closed

Plots not showing (no error) #2824

Etjean opened this issue Apr 16, 2020 · 11 comments

Comments

@Etjean
Copy link

@Etjean Etjean commented Apr 16, 2020

System details

Browser Version: Firefox 75.0 & Chrome 80.0.3987.162

Output of sessionInfo():

R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS

Matrix products: default
BLAS/LAPACK: /home/etienne/miniconda3/envs/R/lib/R/lib/libRblas.so

locale:
 [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=fr_FR.UTF-8       
 [3] LC_TIME=fr_FR.UTF-8           LC_COLLATE=en_US.UTF-8       
 [5] LC_MONETARY=fr_FR.UTF-8       LC_MESSAGES=en_US.UTF-8      
 [7] LC_PAPER=fr_FR.UTF-8          LC_NAME=fr_FR.UTF-8          
 [9] LC_ADDRESS=fr_FR.UTF-8        LC_TELEPHONE=fr_FR.UTF-8     
[11] LC_MEASUREMENT=fr_FR.UTF-8    LC_IDENTIFICATION=fr_FR.UTF-8

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

other attached packages:
 [1] shiny_1.4.0.2   forcats_0.5.0   stringr_1.4.0   dplyr_0.8.5    
 [5] purrr_0.3.3     readr_1.3.1     tidyr_1.0.2     tibble_3.0.0   
 [9] ggplot2_3.2.1   tidyverse_1.3.0

loaded via a namespace (and not attached):
 [1] tidyselect_1.0.0 haven_2.2.0      lattice_0.20-40  colorspace_1.4-1
 [5] vctrs_0.2.4      generics_0.0.2   htmltools_0.4.0  rlang_0.4.5     
 [9] pillar_1.4.3     later_1.0.0      glue_1.4.0       withr_2.1.2     
[13] DBI_1.1.0        dbplyr_1.4.2     modelr_0.1.6     readxl_1.3.1    
[17] lifecycle_0.2.0  munsell_0.5.0    gtable_0.3.0     cellranger_1.1.0
[21] rvest_0.3.5      fastmap_1.0.1    httpuv_1.5.2     fansi_0.4.1     
[25] broom_0.5.5      Rcpp_1.0.4       xtable_1.8-4     scales_1.1.0    
[29] backports_1.1.5  promises_1.1.0   jsonlite_1.6.1   mime_0.9        
[33] fs_1.3.2         hms_0.5.3        digest_0.6.25    stringi_1.4.3   
[37] grid_3.6.1       cli_2.0.2        tools_3.6.1      magrittr_1.5    
[41] lazyeval_0.2.2   crayon_1.3.4     pkgconfig_2.0.3  ellipsis_0.3.0  
[45] xml2_1.2.2       reprex_0.3.0     lubridate_1.7.4  assertthat_0.2.1
[49] httr_1.4.1       rstudioapi_0.11  R6_2.4.1         nlme_3.1-145    
[53] compiler_3.6.1 

Example application or steps to reproduce the problem

Example 1 :

runExample("01_hello")

Example 2 :

runExample("04_mpg")

Example 3 : (from the shiny reference )

# A basic shiny app with a plotOutput
shinyApp(
  ui = fluidPage(
    sidebarLayout(
      sidebarPanel(
        actionButton("newplot", "New plot")
      ),
      mainPanel(
        plotOutput("plot")
      )
    )
  ),
  server = function(input, output) {
    output$plot <- renderPlot({
      input$newplot
      # Add a little noise to the cars data
      cars2 <- cars + rnorm(nrow(cars))
      plot(cars2)
    })
  }
)

Describe the problem in detail

Hello,
My problem : I cannot get any plot showing. No error is displayed, all other widgets and outputs are correctly rendered, but not plots.

I have tried the following :

  • base plots and ggplots
  • firefox and chrome
  • shiny 1.4.0 and shiny 1.3.2
  • R versions 3.6.1, 3.5.1 and 3.4.3

but the results remain the same.

The problem is related to this one. (I am also using a version of R installed with conda, but I do not understand why that makes shiny plots fail to display).
And in my case, the Firefox developper console shows :

SyntaxError: JSON.parse: expected double-quoted property name at line 1 column 10523 of the JSON data.
dispatchMessage shinyapp.js:421
onmessage shinyapp.js:83

I have searched for similar issues, but I did not find any working solution. Any idea is welcome.
Thanks in advance.

@Etjean Etjean closed this as completed Apr 20, 2020
@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

I'm encountering the same issue. I'd be thankful for solutions or referrals to other communities that might be able to help. Thanks!

@Etjean
Copy link
Author

@Etjean Etjean commented May 21, 2020

Hello,
I did not find the solution with conda. You can try installing R and shiny without conda , I think it should work (although I have not tried).

@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

Thanks for the quick reply! Yes, it does indeed work without using conda. However, it would be ideal to find a way that allows me to keep the current setup. So while there is a workaround for the meantime, I still hope for an answer.

@wch
Copy link
Collaborator

@wch wch commented May 21, 2020

If you know how to use Docker and are able to provide a Dockerfile that reproduces the problem, that would help us to debug it.

If you can capture the malformed JSON that's being processed by dispatchMessage in the browser, and post it here or in a gist, that would also help. You may be able to do it by opening your web browser's JavaScript console and having pause on exceptions. Before running your app, run options(shiny.minified=FALSE) so that it uses the original non-minified JS code (this will make debugging easier).

@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

Thanks for the answer! Unfortunately, I'm not familiar with Docker.

I'm also not very familiar with the JavaScript Console, but I think I found the JSON object in question. I put it in this gist.

@wch
Copy link
Collaborator

@wch wch commented May 21, 2020

Here's a weird part in the (escaped) JSON that @schloerke found:

{\"left\":40,88,\"right\":98,12,\"bottom\":-1,08,\"top\":28,08}

The value for left should be 40.88, I think, and not 40,88. There may be some strange locale stuff going on. Can you provide the output of:

Sys.getlocale()
sessioninfo::session_info()

And can you provide the output of these commands:

jsonlite::toJSON(list(x = 40.88), auto_unbox = T)
shiny:::toJSON(list(x = 40.88))

@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

Sure!

> Sys.getlocale()
[1] "de_DE.UTF-8"
> sessioninfo::session_info()
─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value                       
 version  R version 3.6.1 (2019-07-05)
 os       Ubuntu 18.04.4 LTS          
 system   x86_64, linux-gnu           
 ui       RStudio                     
 language de_DE:en_US:en              
 collate  de_DE.UTF-8                 
 ctype    de_DE.UTF-8                 
 tz       Europe/Berlin               
 date     2020-05-21                  

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.6.0)
 cli           2.0.2   2020-02-28 [1] CRAN (R 3.6.1)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 3.6.0)
 digest        0.6.25  2020-02-23 [1] CRAN (R 3.6.1)
 fansi         0.4.1   2020-01-08 [1] CRAN (R 3.6.1)
 fastmap       1.0.1   2019-10-08 [1] CRAN (R 3.6.1)
 glue          1.3.2   2020-03-12 [1] CRAN (R 3.6.1)
 htmltools     0.4.0   2019-10-04 [1] CRAN (R 3.6.1)
 httpuv        1.5.2   2019-09-11 [1] CRAN (R 3.6.1)
 jsonlite      1.6.1   2020-02-02 [1] CRAN (R 3.6.1)
 later         1.0.0   2019-10-04 [1] CRAN (R 3.6.1)
 magrittr      1.5     2014-11-22 [1] CRAN (R 3.6.0)
 mime          0.9     2020-02-04 [1] CRAN (R 3.6.1)
 promises      1.1.0   2019-10-04 [1] CRAN (R 3.6.1)
 R6            2.4.1   2019-11-12 [1] CRAN (R 3.6.1)
 Rcpp          1.0.4   2020-03-17 [1] CRAN (R 3.6.1)
 rlang         0.4.5   2020-03-01 [1] CRAN (R 3.6.1)
 rstudioapi    0.11    2020-02-07 [1] CRAN (R 3.6.1)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.6.1)
 shiny       * 1.4.0.2 2020-03-13 [1] CRAN (R 3.6.1)
 withr         2.1.2   2018-03-15 [1] CRAN (R 3.6.0)
 xtable        1.8-4   2019-04-21 [1] CRAN (R 3.6.0)
 yaml          2.2.1   2020-02-01 [1] CRAN (R 3.6.1)
> jsonlite::toJSON(list(x = 40.88), auto_unbox = T)
{"x":40.88} 
> shiny:::toJSON(list(x = 40.88))
{"x":40,88} 

@wch
Copy link
Collaborator

@wch wch commented May 21, 2020

Thanks! Can you provide the output from:

Sys.getlocale("LC_NUMERIC")

@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

> Sys.getlocale("LC_NUMERIC")
[1] "de_DE.UTF-8"

@wch
Copy link
Collaborator

@wch wch commented May 21, 2020

I can reproduce the behavior with:

withr::with_locale(
  c(LC_NUMERIC = "de_DE"), 
  jsonlite::toJSON(list(x = 40.88), auto_unbox = T, digits = NA)
)
#> Warning message:
#> In (function (category = "LC_ALL", locale = "")  :
#>   setting 'LC_NUMERIC' may cause R to function strangely
#> {"x":40,88} 


withr::with_locale(
  c(LC_NUMERIC = "C"), 
  jsonlite::toJSON(list(x = 40.88), auto_unbox = T, use_signif = T)
)
#> Warning message:
#> In (function (category = "LC_ALL", locale = "")  :
#>   setting 'LC_NUMERIC' may cause R to function strangely
#> {"x":40.88} 

(shiny:::toJSON() is a wrapper function that calls jsonlite::toJSON().)

In the documentation for Sys.setlocale, it says:

Setting "LC_NUMERIC" to any value other than "C" may cause R to function anomalously, so gives a warning. Input conversions in R itself are unaffected, but the reading and writing of ASCII save files will be, as may packages which do their own input/output.

I think what's happening that conda is setting the locale to "de_DE", which it is not supposed to do. You should probably run this when you start up R:

Sys.setlocale("LC_NUMERIC", "C")

That said, jsonlite::toJSON() is producing malformed output when that locale setting is used, and that is a bug, so I'll file an issue there.

@maximilian-leitheiser
Copy link

@maximilian-leitheiser maximilian-leitheiser commented May 21, 2020

Thanks a lot! Setting the locale to "C" did actually solve the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants