plotly / plotly/plotly.R

Solution to combine facetted legends breaks for continuous variable

Abierto
#2,112 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
R
Estrellas
2.7k
Forks
641
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I am trying to use plotly to create facetted plots - I do this by using group_map() to create my plots robustly.

The solution I currently have works in reducing duplicated legend labels when using discrete variables for color/size/etc but fail to work for continuous variables. I assume this is do to each facetted plot potentially having different total ranges for the continuous variable.

library(tidyverse)
library(plotly)

city_list = unique(txhousing$city) %>%  
  sample(8)

##solution works for discrete labels 
txhousing %>%  
  filter(month < 6, 
         city %in% city_list) %>% 
  group_by(month) %>% 
  group_map(~{
    plot_ly(.x, x=~year, y = ~sales, color = ~city,legendgroup = ~city,type = "bar"
            ,showlegend = (.y == "1")
            ) %>%
      layout(yaxis = list(
        title = paste0(c(rep("&nbsp;", 20),
                         paste("<b>", as.character(.y), "</b>"),
                         rep("&nbsp;", 20),
                         rep("\n&nbsp;", 3)),
                       collapse = ""))) %>%
      layout(barmode = 'stack')
  }
  ) %>%
  subplot(nrows = NROW(.), margin = .05, shareX = T, shareY = T, titleY = T) 

##solution fails to merge legends for continuous variable
txhousing %>%  
  filter(month < 6, 
         city %in% city_list) %>% 
  group_by(month) %>% 
  group_map(~{
    plot_ly(.x, x=~year, y = ~sales, color = ~volume,legendgroup = ~volume,type = "bar"
            ,showlegend = (.y == "1")
            ) %>%
      layout(yaxis = list(
        title = paste0(c(rep("&nbsp;", 20),
                         paste("<b>", as.character(.y), "</b>"),
                         rep("&nbsp;", 20),
                         rep("\n&nbsp;", 3)),
                       collapse = ""))) %>%
      layout(barmode = 'stack')
  }
  ) %>%
  subplot(nrows = NROW(.), margin = .05, shareX = T, shareY = T, titleY = T) 

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza ejecutando las dos reproducciones de R proporcionadas con plot_ly(), group_map() y subplot(), y luego compara los casos de color discreto y continuo. Rastrea cómo subplot combina las trazas y las leyendas; se considera terminado cuando las leyendas de variables continuas se combinan sin romper el comportamiento del gráfico facetado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
r
Área
data-visualization
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.