Bug: leftover xaxis entries when toggling between buttons
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- data-visualization
Research direction
Start by running the provided Python MWE and switching between the option1 and option2 buttons in the subplot figure. Inspect how shared x-axis entries are retained when traces are hidden and the options share the label B. Done means switching to option2 no longer displays the leftover C x-axis entry from option1.
Written by the indexing model from the issue text.
Description
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()
Toggling to option2, we can see the C xaxis entry (from option1) still showing (even with no data for it):
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).
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 13h 41m
- Merged PRs (30d)
- 21
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from plotly/plotly.py
-
P3 size: 1 task
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
P3 size: 1 task
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
bug P1
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
feature P3
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
feature P3
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
All issues in plotly/plotly.py
Similar issues
-
Add: hunch Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AbdelStark/awesome-typesafe#104 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
DiamondLightSource/dodal#2211 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
openml/openml-python#1749 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
sipyourdrink-ltd/bernstein#6191 ·