plotly / plotly/plotly.R

subplot missing Y labels when plots are faced

Open
#1,415 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Dears, I'm working with the subplot function with two (or more) ggplotly objects, but when I try to put two different charts, the final subplot output give me the two charts without the labels that I can put in the previous ones.

for example:

library(plotly)

random dataframe 1

df1<-data.frame(x1=as.factor(rep(seq(1:5),3)),y1=sample(seq(0:100000),30),z1=c("class1","class2","class3"))
df1

random dataframe2 (with same x1 axis)

df2<-data.frame(x2=df1$x1,y2=sample(seq(0:5),30,replace = T), z2=c("a","b","c"))
df2

chart1 as boxplot and personalized ylab

p1<-ggplotly(ggplot(df1,aes(x1,y1)) + 
               geom_boxplot() +
               ylab("test ylab1") +
               facet_grid(z1~.))
p1

screen shot 2018-11-26 at 7 52 53 pm

chart1 as boxplot and personalized ylab

p2<-ggplotly(ggplot(df2,aes(x2,y2)) + 
               geom_bar(,stat = "identity") + 
               ylab("test ylab2") + 
               facet_grid(z2~.,margins = TRUE))
p2

screen shot 2018-11-26 at 7 53 55 pm

but applying subplot the ylabels are missing

subplot(plotlist,nrows = 2, shareY = TRUE)

screen shot 2018-11-26 at 7 54 24 pm

I notice the option shareY=TRUE works well when the ggplot objects doesn't have (in my case) facet_grid

I tried some alternatives using %>% layouts but is not the solution I'm looking for (even more if we consider this for N plots), so my questions are:

  • is there a way to recover o preserve the ylabs from original ggplot objects when they are faced?
  • or at least create new ones for each subplot?
  • it is a bug?

sessionInfo()

R version 3.5.0 (2018-04-23)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
 [1] bindrcpp_0.2.2        maps_3.3.0            RPostgreSQL_0.6-2     rmongodb_1.8.0        cowplot_0.9.2        
 [6] scales_0.5.0          reshape2_1.4.3        RMySQL_0.10.15        DBI_1.0.0             dplyr_0.7.8          
[11] shinycssloaders_0.2.0 shiny_1.2.0           plotly_4.8.0          ggplot2_3.1.0        

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0          pillar_1.2.2        compiler_3.5.0      later_0.7.5         plyr_1.8.4         
 [6] bindr_0.1.1         tools_3.5.0         digest_0.6.15       jsonlite_1.5        tibble_1.4.2       
[11] gtable_0.2.0        viridisLite_0.3.0   pkgconfig_2.0.1     rlang_0.3.0.1       rstudioapi_0.7     
[16] crosstalk_1.0.0     yaml_2.1.19         stringr_1.3.1       withr_2.1.2         httr_1.3.1         
[21] htmlwidgets_1.2     grid_3.5.0          tidyselect_0.2.4    glue_1.2.0          data.table_1.10.4-3
[26] R6_2.2.2            purrr_0.2.4         tidyr_0.8.0         magrittr_1.5        promises_1.0.1     
[31] htmltools_0.3.6     assertthat_0.2.0    mime_0.5            colorspace_1.3-2    xtable_1.8-2       
[36] httpuv_1.4.5        labeling_0.3        stringi_1.2.3       lazyeval_0.2.1      munsell_0.4.3      
[41] crayon_1.3.4 

thanks you very much in advance!,
Sandro

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 running the supplied R example with ggplotly() and subplot(..., shareY = TRUE), comparing the individual plots with the combined output. Trace the subplot and ggplotly handling of facet_grid axis titles; done means the combined plots preserve or provide the expected Y-axis labels for each subplot, with a regression test for the example.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
data-visualization
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.