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

Bug: leftover xaxis entries when toggling between buttons

Aberta
#4,849 2 comentários 0 reações 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
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python

Direção de pesquisa

Comece executando o MWE de Python fornecido e alternando entre os botões option1 e option2 na figura de subplots. Inspecione como as entradas compartilhadas do eixo x são mantidas quando as traces ficam ocultas e as opções compartilham o rótulo B. Está concluído quando, ao alternar para option2, a entrada C do eixo x deixada por option1 não for mais exibida.

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

Descrição

Minimum Working Example (MWE):

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# Data
option1_x = ['A', 'B', 'C']
option1_y1 = [1, 3, 2]
option1_y2 = [2, 4, 3]

option2_x = ['B', 'D', 'E']
option2_y1 = [2, 1, 4]
option2_y2 = [3, 2, 5]

# Create subplots
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, subplot_titles=("y1", "y2"))

# Add traces for option1
fig.add_trace(go.Bar(x=option1_x, y=option1_y1, name="option1_y1"), row=1, col=1)
fig.add_trace(go.Bar(x=option1_x, y=option1_y2, name="option1_y2"), row=2, col=1)

# Add traces for option2
fig.add_trace(go.Bar(x=option2_x, y=option2_y1, name="option2_y1"), row=1, col=1)
fig.add_trace(go.Bar(x=option2_x, y=option2_y2, name="option2_y2"), row=2, col=1)

# Initially set option1 visible and option2 invisible
for trace in fig.data:
    trace.visible = False
fig.data[0].visible = True  # y1 option1
fig.data[1].visible = True  # y2 option1

# Add buttons
fig.update_layout(
    updatemenus=[
        {
            "type": "buttons",
            "buttons": [
                {
                    "label": "option1",
                    "method": "update",
                    "args": [
                        {"visible": [True, True, False, False]},  # Show only option1 traces
                    ]
                },
                {
                    "label": "option2",
                    "method": "update",
                    "args": [
                        {"visible": [False, False, True, True]},  # Show only option2 traces
                    ]
                }
            ],
            "showactive": True,
        }
    ],
)

fig.show()

Image

Toggling to option2, we can see the C xaxis entry (from option1) still showing (even with no data for it):

Image

This seems to only be an issue with subplots, and when the traces of different options have some xaxis labels in common (in this case B).

Linguagem predominante
Python
Estrelas
18.8k
Forks
2.8k
Merge médio
13h 28min
PRs com merge (30d)
20

Guia de contribuição

Abrir o guia de contribuição

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.py

Todas as issues de plotly/plotly.py

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

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