plotly / plotly/plotly.py

Polar and polar subplot (make_subplots) not displaying correctly in FigureWidget Jupyter Ipython notebook

Offen
#1,753 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug P3
Vorherrschende Sprache
Python
Sterne
18.8k
Forks
2.8k
Ø Merge
16 Std. 26 Min.
Gemergte PRs (30 T.)
21

Beschreibung

plotly==4.1.1
jupyter==1.0.0
ipython==7.8.0

Plotting a polar in a subplot works fine (#758 resolved in 4.1.1?) but wrapping a polar figure in a FigureWidget and using display causes theta values to become very strange, scattering the data. This happens for subplots and solo polar plots.
This would appear to be a Bug. Any thoughts on a workaround?

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

# Data
# the first subplot: a histogram (If using)
trace1 = go.Histogram(
    x=np.random.uniform(1,6,size=62),
)

# the second subplot: a polar graph
trace2 = go.Scatterpolar(
    r = np.random.uniform(1,6,size=62),
    theta = np.random.uniform(30,5,size=62),
    mode='markers',
)

# # # # # # # # # # # # # # # # # # 
# single polar example
# # # # # # # # # # # # # # # # # # 
fig = go.Figure(
    trace2, 
    layout=go.Layout(
        title=go.layout.Title(text="Polar chart - normal fig.show()")
    )
)

fig.show()

# Now wrap in a figure widget and use same traces
# not working correctly

fig.update_layout(go.Layout(
    title=go.layout.Title(text="Polar chart - FigureWidget")
    )
)
fig2 = go.FigureWidget(
    fig,
)
display(fig2)  # allows traces to be added but displays wrong

print("FigureWidget.show()")
fig2.show()  # This will not be updateable with data - just shows base fig

# # # # # # # # # # # # # # # # # # 
# Subplots example
# # # # # # # # # # # # # # # # # # 
# normal use of make_subplots

# make 2 plots sublplot
fig = make_subplots(rows=1, cols=2, specs=[[{}, {'type': 'polar'}]],)
fig.update_layout(go.Layout(
    title=go.layout.Title(text="Polar chart - normal fig.show()")
    ))

fig.append_trace(trace1, 1, 1)

fig.append_trace(trace2, 1, 2)

fig.show()

# Now wrap in a figure widget and use same traces
# not working correctly                
fig2 = go.FigureWidget(make_subplots(rows=1, cols=2, specs=[[{'type': 'bar'}, {'type': 'polar'}]]))

fig2.update_layout(go.Layout(
    title=go.layout.Title(text="Polar chart - FigureWidget")
    ))

display(fig2)  # allows traces to be added but the polar one displays wrong
print("FigureWidget.show()")
fig2.show()  # This will not be updateable with data - just shows base fig

# the first subplot: a histogram
fig2.append_trace(trace1, 1, 1)

# the second subplot: a polar graph
fig2.append_trace(trace2, 1, 2)
                  
print("FigureWidget.show()")
fig2.show() # This fig show will work and display correct data

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den bereitgestellten Reproducer mit den aufgeführten Python-, Jupyter- und IPython-Versionen auszuführen, und vergleiche die normale Ausgabe von fig.show() mit display() von FigureWidget sowohl für den eigenständigen als auch für den Subplot-Fall. Erledigt ist die Aufgabe, wenn die Polar-Theta-Werte in beiden FigureWidget-Szenarien korrekt dargestellt werden; das Issue nennt zu Beginn keine Quelldateien oder Tests.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
jupyter, jupyter-notebook, python
Bereich
data-visualization
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.