plotly / plotly/plotly.py

Plotting data only on secondary_y axes ignores subplot grid

Ouverte
#4,302 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug P3
Langage dominant
Python
Étoiles
18.8k
Forks
2.8k
Merge moyen
16 h 26 min
PR mergées (30 j)
21

Description

Hello,

running the following code will produce a 2x2 subplot grid with data on the primary_y axes and data on one secondary_y axes.

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

rows = 2
cols = 2

fig = make_subplots(rows=rows, cols=cols, specs=[[{"secondary_y": True}] * cols] * rows)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name='1:1 primary_y',),
              secondary_y=False, row=1, col=1)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'1:2 primary_y',),
              secondary_y=False, row=1, col=2)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:1 primary_y',),
              secondary_y=False, row=2, col=1)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:2 primary_y',),
              secondary_y=False, row=2, col=2)

# plot on secondary_y
fig.add_trace(go.Scatter(x=np.arange(5) + 1, y=np.arange(5), name=f'2:2 secondary_y',),
              secondary_y=True, row=2, col=2)

fig.update_layout(height=400, width=600)

fig.write_html('test_bug.html')

grafik

however if you don’t plot any data on a primary_y axes but leave the data on the secondary_y axes the height of the axes will take up the whole height of the figure

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

rows = 2
cols = 2

fig = make_subplots(rows=rows, cols=cols, specs=[[{"secondary_y": True}] * cols] * rows)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name='1:1 primary_y',),
              secondary_y=False, row=1, col=1)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'1:2 primary_y',),
              secondary_y=False, row=1, col=2)

fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:1 primary_y',),
              secondary_y=False, row=2, col=1)

# fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:2 primary_y',),
#               secondary_y=False, row=2, col=2)

# plot on secondary_y
fig.add_trace(go.Scatter(x=np.arange(5) + 1, y=np.arange(5), name=f'2:2 secondary_y',),
              secondary_y=True, row=2, col=2)

fig.update_layout(height=400, width=600)

fig.write_html('test_bug.html')

grafik

is this behaviour intentional?

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez les deux exemples avec make_subplots, add_trace et l’option secondary_y, en comparant les fichiers test_bug.html générés. Étudiez comment la grille de subplots attribue les domaines des axes lorsque la trace primaire de la ligne 2, colonne 2 est omise. Le travail est terminé lorsque les données utilisant uniquement l’axe secondaire restent confinées à leur cellule de subplot 2x2 au lieu de s’étendre sur toute la figure.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
numpy, python
Domaine
data-visualization
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.