Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

go.Contour doesn't render correctly in animation frames when multiple traces are present

Aperta
#5,256 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Inizia eseguendo l’esempio Python minimo fornito in plotly.py e confronta l’animazione con il solo go.Contour con l’animazione che include le tracce go.Scatter aggiuntive. Segui il percorso di animazione/rendering utilizzato da Figure e Frame per i dati di contorno; il lavoro è completato quando il contorno viene renderizzato correttamente in tutti i frame quando sono presenti più tracce, senza regressioni nel caso di una singola traccia.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug P2

I'm encountering an issue with plotly.graph_objects.Figure animations. When using go.Contour inside go.Frame along with additional traces such as go.Scatter, the contour plot no longer renders correctly during animation. However, if I only include the go.Contour trace by itself in each frame, it animates perfectly.
Here's a minimal reproducible example:

import plotly.io as pio
pio.renderers.default = 'browser'
import plotly.graph_objects as go
import numpy as np

z_base = np.array([
    [10, 10.625, 12.5, 15.625, 20],
    [5.625, 6.25, 8.125, 11.25, 15.625],
    [2.5, 3.125, 5., 8.125, 12.5],
    [0.625, 1.25, 3.125, 6.25, 10.625],
    [0, 0.625, 2.5, 5.625, 10]
])

lk_x=[0,0,1,1,0]
lk_y=[0,1,1,0,0]

data_line = go.Scatter(x=lk_x, y=lk_y, mode='lines', fill='toself', fillcolor='rgba(60, 53, 48, 0.5)', line_color='black', showlegend=False)

scales = np.linspace(0.2, 1.0, 10)
frames = []
for i, s in enumerate(scales):
    z_scaled = z_base * s
    frames.append(go.Frame(
        data=[
            go.Contour(
                z=z_scaled,
                colorbar=dict(
                    thickness=25,
                    thicknessmode='pixels',
                    len=0.6,
                    lenmode='fraction',
                    outlinewidth=0
                )
                ,zorder=2
            ),
            go.Scatter(
                x=[0, 1, 2, 3, 4],
                y=[0, 1, 1.5, 2, 3], 
                mode='lines',
                line=dict(color='black', width=2),
                showlegend=False,
                zorder=0
            ),
            data_line
        ],
        name=f"scale_{i}"
    ))


fig = go.Figure(
    data=frames[0].data,
    frames=frames
)

fig.update_layout(
    title="Contour",
    updatemenus=[{
        "buttons": [
            {"label": "play", "method": "animate", "args": [None, {"frame": {"duration": 500}, "fromcurrent": True}]},
            {"label": "pause", "method": "animate", "args": [[None], {"mode": "immediate", "frame": {"duration": 0}}]}
        ],
        "type": "buttons",
        "showactive": True,
        "x": 0.1,
        "y": -0.1
    }],
    sliders=[{
        "steps": [{"args": [[f.name]], "label": f"Step {i+1}", "method": "animate"} for i, f in enumerate(frames)],
        "x": 0.1,
        "len": 0.9
    }],
    width=500,
    height=500
)

fig.show()

only include the go.Contour trace:

Image

with additional traces:

Image

Lingua principale
Python
Stelle
18.8k
Fork
2.8k
Merge medio
13h 41m
PR unite (30g)
21

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di plotly/plotly.py

Tutte le issue di plotly/plotly.py

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.