Bug report: Incorrect drawing order of Isosurfaces with opacity
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 38/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- data-visualization
Direção de pesquisa
Comece executando a reprodução em Python fornecida no Chrome e compare isosurface e volume rendering com opacidade 0.99 versus 1. Investigue o caminho de renderização para Isosurfaces, multisurfaces e volume plots opacos e quase opacos. Considera-se concluído quando os casos fornecidos forem desenhados na ordem correta, sem regredir a renderização totalmente opaca.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
- Reported by Łukasz as a post on the forum
- Plotly version: 6.2.0
- Python version: 3.11.13
- Browser: chrome
Hi, i have found quite annoying bug which can be seen only when the isosurface components are opaque. I observed that it doesn’t only occur for multiple trace isosurfaces, but also single multisurface isosurfaces and volume plots.
Here is an example code how to replicate it:
(The fun part is that when you change the opacity from 0.99 to 1 the plot gets visualised properly.)
import plotly.graph_objects as go
import numpy as np
import nrrd
from skimage.transform import resize
volume = np.zeros((50, 50, 50))
volume[1:10, 5:45, 5:45] =1
volume[10:20, 5:45, 5:45] = 1.5
volume[20:30, 5:45, 5:45] = 2
volume[30:40, 5:45, 5:45] = 2.5
volume[40:49, 5:45, 5:45] = 3
Z, X, Y = np.mgrid[0:volume.shape[0]:1, 0:volume.shape[1]:1, 0:volume.shape[2]:1]
fig = go.Figure(data=[go.Isosurface(
x=X.flatten(),
y=Y.flatten(),
z=Z.flatten(),
opacity=0.99,
value=np.where(volume == 1, 1, 0).flatten(),
surface_fill=1,
surface_count=1,
colorscale=[[0, 'rgb(0,255,0)'], [1, 'rgb(0,255,0)']],
caps=dict(x_show=False, y_show=False, z_show=False),
#slices_z=dict(show=True, locations=list(range(volume.shape[0]))),
),
go.Isosurface(
x=X.flatten(),
y=Y.flatten(),
z=Z.flatten(),
opacity=0.99,
value=np.where(volume == 3, 1, 0).flatten(),
surface_fill=1,
surface_count=1,
colorscale=[[0, 'rgb(255,0,0)'], [1, 'rgb(255,0,0)']],
caps=dict(x_show=False, y_show=False, z_show=False),
# slices_z=dict(show=True, locations=list(range(volume.shape[0]))),
)])

The bug can be seen looking form under the plot:

- Linguagem predominante
- Python
- Estrelas
- 18.8k
- Forks
- 2.8k
- Merge médio
- 13h 28min
- PRs com merge (30d)
- 20
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de plotly/plotly.py
-
P3 size: 1 task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
P3 size: 1 task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
bug P1
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
-
feature P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
-
feature P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Todas as issues de plotly/plotly.py
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
stephrobert/dsoxlab#238 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
sublimehq/package_control#1780 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
nwg-piotr/nwg-displays#145 ·