plotly / plotly/plotly.py

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

Abierto
#1,753 3 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug P3
Lenguaje dominante
Python
Estrellas
18.8k
Forks
2.8k
Merge medio
16 h 26 min
PR fusionados (30 d)
21

Descripción

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza ejecutando el reproductor proporcionado con las versiones indicadas de Python, Jupyter e IPython, comparando la salida normal de fig.show() con display() de FigureWidget tanto para el caso independiente como para el caso de subplots. Se considera terminado cuando los valores theta polares se representan correctamente en ambos escenarios de FigureWidget; el issue no especifica archivos fuente ni tests para empezar.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
jupyter, jupyter-notebook, python
Área
data-visualization
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.