Polar and polar subplot (make_subplots) not displaying correctly in FigureWidget Jupyter Ipython notebook
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
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
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.
Research direction
Start by running the provided reproducer with the listed Python, Jupyter, and IPython versions, comparing normal fig.show() output with display() of FigureWidget for both the standalone and subplot cases. Done means polar theta values render correctly in both FigureWidget scenarios; the issue names no source files or tests to begin with.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter, jupyter-notebook, python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100