Mesh3d plot disappears when opacity less than 1
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 18.8k
- Fork
- 2.8k
- Merge medio
- 16h 26m
- PR unite (30g)
- 21
Descrizione
NOTE: When I found and reported this bug, I was working on a Chromebook. After I wrote this, I noted this does not occur from Mac with Chrome (ver 74).
Please see my example code below. I am plotting offline. When I change the opacity to anything other than 1, the plot disappears. As evidenced by the hover info, the plot still exists; it's just not visible.
I tried a number of different colorscales with different alpha values. The result does not change.
I also tried working around the opacity issue by setting the opacity to 1 and then setting the colorscale alpha values to something less than 1. But the alpha values appear to have no effect.
I noticed some similar bugs such as 3741, 3744, and 3492. Despite their similarity, these bugs appear to be different from this issue I am reporting. They are also resolved.
Lastly, I note that this bug occurs on the latest versions of Chrome (i.e. 74). But it does not occur on earlier versions.
Postscript: I have subsequently noticed the occurrence of the same opacity bug for Scatter3d. I also note that there's no opacity problem for Scatter in 2d.
import numpy as np
from numpy import sin, cos, pi
import plotly
import plotly.graph_objs as go
def ellipsoid( a = 4, b = 3, c = 2, num_pts = 40):
phi = np.linspace(0, 2 * pi, num=num_pts)
theta = np.linspace(-pi / 2, pi / 2, num=num_pts)
phi, theta = np.meshgrid(phi, theta)
x = cos(theta) * sin(phi) * a
y = cos(theta) * cos(phi) * b
z = sin(theta) * c
Ell = np.vstack((x.flatten(), y.flatten(), z.flatten()))
ell_1 = go.Mesh3d(
opacity = 0.99,
colorscale = [ [0.0, 'rgb(255, 0, 0)'], [0.5, 'rgb(0, 255, 0)'], [1.0, 'rgb(0, 0, 255)'] ],
intensity = z.flatten(),
name = 'z',
showscale = False,
x = Ell[0, :].flatten(),
y = Ell[1, :].flatten(),
z = Ell[2, :].flatten(),
alphahull = 0
)
axes_max = np.max( np.abs(Ell) )
return ell_1, axes_max
def plot_it(data, mr):
r = [-mr, mr]
layout = go.Layout(
autosize = False,
width = 600,
height = 600,
margin = dict(
l = 0,
r = 0,
b = 0,
t = 0,
pad = 4),
scene = dict(
aspectratio = go.layout.scene.Aspectratio(x=1, y=1, z=1),
xaxis = dict(
range=r,
title='x'),
yaxis = dict(
range=r,
title='y'),
zaxis = dict(
range=r,
title='z' ))
)
fig = go.Figure(data=data, layout=layout)
plotly.offline.plot(fig, filename='/home/chronos/user/Downloads/bug_mesh3d_opac.html')
return
def test1():
d, mx = ellipsoid()
data = [d]
plot_it(data, mx+2.)
return
def main():
test1()
return
if __name__ == "__main__":
main()
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci l’esempio usando plotly.offline.plot con una traccia Mesh3d in Chrome, variando l’opacità e i valori alfa di colorscale; verifica anche il caso Scatter3d segnalato. Segui il percorso di rendering 3D per determinare perché la geometria rimane interattiva al passaggio del mouse ma invisibile, e considera conclusa l’issue quando i grafici Mesh3d e Scatter3d parzialmente opachi vengono renderizzati correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- data-visualization
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100