plotly / plotly/plotly.py

ZOrder parameter Breaks Plotly!

Open
#5,263 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P2
Dominant language
Python
Stars
18.8k
Forks
2.8k
Avg merge
16h 26m
Merged PRs (30d)
21

Description

Hi, if I set zorder=2 or zorder=3 parameter in Candles, Scatter then the Plotly application will be broken!
It happens with Dash and Panel. So I think the problem is woth Plotly itself.
It happens when I regenerate a figure but sometimes it happens when I open an application first time.

I've recorded a video as it's hard to explain.
https://drive.google.com/file/d/1CiBZgWk60Q--nRdtFyQcyXDZFpfjRgv5/view?usp=drive_link

Image Image

Some code:

    fig: go.Figure = make_subplots(rows=6, cols=1, 
                                   shared_xaxes=True,
                                    vertical_spacing=v_subplot_space, # Reduce space between plots
                                    row_heights=row_heights) # Allocate space (Price gets most)

    v_subplot_space = 0.001  # vertical_spacing
    row_heights=[1.0, 0.1, 0.1, 0.1, 0.1, 0.1]

    fig: go.Figure = make_subplots(rows=6, cols=1, 
                                   shared_xaxes=True,
                                    vertical_spacing=0.005, # Reduce space between plots
                                    row_heights=row_heights) # Allocate space (Price gets most)

    # Bollinger Bands
    fig.add_trace(go.Scatter(
        hovertext=candles_df[CandlesTypes.DAY_NAME],
        x=candles_df[CandlesTypes.DATETIME], y=candles_df[CandlesTypes.BB_UPPER], 
        name="BB Upper",
        line=dict(color='rgba(150, 150, 150, 0.5)', width=1,), # Light grey
       zorder=1,
        hoverinfo="skip",
    ), row=1, col=1)

    fig.update_yaxes(
                     row=1, col=1, 
                     )

    fig.update_xaxes(
        dtick="D1",  # Set grid interval to 1 day
        matches='x',
    )

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 reducing the supplied make_subplots and Scatter/Candles example to a reproducible case, comparing behavior with and without zorder in Dash and Panel. Check both initial loading and figure regeneration; done means zorder no longer breaks either application.

Written by the indexing model from the issue text.

Assessment

Tech stack
plotly, python
Domain
data-visualization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 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.