plotly / plotly/plotly.R

R session hangs up after using ggplotly()

Open
#2,318 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
2.7k
Forks
641
PR merge metrics
No merged PRs in 30d

Description

My R session (within RStudio) hangs up after using ggplotly().
For testing, I use one of the examples of ?ggplotly. The example normally works ok once or twice, but the R session hangs up after several tries (in the example below, the 2nd run hung up the session). I cannot even close RStudio from within the GUI and have to use the System Monitor application to kill it.
This problem arises when I run the following code after I have loaded a given project, not if I start a R session with no project. However, the project does not load any data or package, so I do not know how to identify the problem.
This is what I specifically do:


> ls()
    character(0)
    > search()
     [1] ".GlobalEnv"        "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices"
     [6] "package:utils"     "package:datasets"  "package:methods"   "Autoloads"         "package:base"     
    > sessionInfo()
    R version 4.1.2 (2021-11-01)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Pop!_OS 22.04 LTS
    
    Matrix products: default
    BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
    LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
    
    locale:
     [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=es_ES.UTF-8       
     [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=en_US.UTF-8   
     [7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
    [10] LC_TELEPHONE=C             LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    loaded via a namespace (and not attached):
     [1] rgl_1.2.1              Rcpp_1.0.11            class_7.3-20           digest_0.6.33         
     [5] kml_2.4.6              R6_2.5.1               plyr_1.8.9             jsonlite_1.8.7        
     [9] magrittr_2.0.3         evaluate_0.22          rlang_1.1.1            longitudinalData_2.4.5
    [13] cli_3.6.1              misc3d_0.9-1           rstudioapi_0.15.0      rmarkdown_2.25        
    [17] tools_4.1.2            htmlwidgets_1.6.2      clv_0.3-2.4            xfun_0.40             
    [21] yaml_2.3.7             fastmap_1.1.1          compiler_4.1.2         base64enc_0.1-3       
    [25] cluster_2.1.2          tcltk_4.1.2            htmltools_0.5.6.1      knitr_1.44            
    
    > library(ggplot2)
    > library(plotly)

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
    > data(canada.cities, package = "maps")
    > viz <- ggplot(canada.cities, aes(long, lat)) +
    +     borders(regions = "canada") +
    +     coord_equal() +
    +     geom_point(aes(text = name, size = pop), colour = "red", alpha = 1/2)
    Warning message:
    In geom_point(aes(text = name, size = pop), colour = "red", alpha = 1/2) :
      Ignoring unknown aesthetics: text
    > ggplotly(viz, tooltip = c("text", "size"))
    > 
    > 
    > 
    > 
    > data(canada.cities, package = "maps")
    > viz <- ggplot(canada.cities, aes(long, lat)) +
    +     borders(regions = "canada") +
    +     coord_equal() +
    +     geom_point(aes(text = name, size = pop), colour = "red", alpha = 1/2)
    Warning message:
    In geom_point(aes(text = name, size = pop), colour = "red", alpha = 1/2) :
      Ignoring unknown aesthetics: text
    > ggplotly(viz, tooltip = c("text", "size"))
    > 
    > 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the supplied ggplotly(viz, tooltip = c("text", "size")) example in a project and in a session without a project, recording the sessionInfo() and loaded packages shown. Compare the two environments and trace the ggplotly() entry point; done means the hang is reproduced with a confirmed cause and a verified resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
data-visualization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.