Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

legendrank (bar chart example)

Aberta
#2,233 1 comentário 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
plotly, r

Direção de pesquisa

Execute o reprex de R fornecido e inspecione plotly_json(px), concentrando-se em como o mapeamento de legendrank é representado para os traces de barras. Compare a ordem da legenda gerada com os ranks solicitados; considera-se concluído quando os traces aparecem na ordem dos ranks ou quando a issue é explicada e coberta por um teste de regressão apropriado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

This bug report concerns R plotly 4.10.1.
I was going to file a report regarding a more complex composite chart; involving bars and lines; as I noticed when there was an NA(or NaN) value to plot against the Y axis , the legend orders got scrambled. I was able to directly address this shortcoming in my own code by na.omit() on my input dataset. However , in the course of trying to simplify my code down to be more minimal for this reprex, I encountered a more basic issue of the legendrank seemingly not being respected

library(tidyverse)
library(plotly)
(tot_df <- structure(list(
  rank = structure(c(
    1L, 1L, 1L, 1L, 2L, 2L, 2L,
    2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L
  ), levels = c(
    "1", "2", "3",
    "4"
  ), class = "factor"), value = c(
    1, 0.316227766016838, 2, 0.447213595499958,
    3, 0.547722557505166, 4, 0.632455532033676, 5, 0.707106781186548,
    3, 0.547722557505166, 2, 0.447213595499958, 1, 0.316227766016838
  ), name = c(
    "stat1", "stat_2", "stat1", "stat_2", "stat1", "stat_2",
    "stat1", "stat_2", "stat1", "stat_2", "stat1", "stat_2", "stat1",
    "stat_2", "stat1", "stat_2"
  ), `Display name` = structure(c(
    1L,
    1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L
  ), levels = c(
    "Reference",
    "Current"
  ), class = "factor"), series_name_text = structure(c(
    1L,
    2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L
  ), levels = c(
    "Reference stat1",
    "Reference stat_2", "Current stat1", "Current stat_2"
  ), class = "factor"),
  my_legend_rank = c(
    1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L,
    3L, 4L, 1L, 2L, 3L, 4L
  )
), row.names = c(NA, -16L), class = c(
  "tbl_df",
  "tbl", "data.frame"
))
)


px <- plot_ly(
  data = tot_df,
  width = 800,
  height = 600,
  x = ~rank,
  y = ~value,
  name = ~series_name_text,
  legendrank = ~my_legend_rank,
  color = ~`Display name`,
  colors = c("green", "blue"),
  textposition = "none",
  type = "bar",
  opacity = .5,
  yaxis = "y"
) |> layout(legend = list(
  orientation = "h",
  xanchor = "center",
  yanchor = "bottom",
  y = -0.3,
  x = 0.5
))

# table(tot_df$series_name_text,tot_df$my_legend_rank
#                  1 2 3 4
# Reference stat1  4 0 0 0
# Reference stat_2 0 4 0 0
# Current stat1    0 0 4 0
# Current stat_2   0 0 0 4

plotly_json(px)

image

It seems to me that based on legendrank 'Reference stat1 should be the first i.e. leftmost trace name observed within the legend box, and this isnt the case, the first seen is Current stat1, that should be in 3rd position...)
Is there a gotcha here ? some incorrect setup ? something that invalidates the use of legendrank ?

Linguagem predominante
R
Estrelas
2.7k
Forks
640
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de plotly/plotly.R

Todas as issues de plotly/plotly.R

Issues semelhantes

Mais issues de R

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.