plotly / plotly/plotly.py

Mesh3d plot disappears when opacity less than 1

Đang mở
#1,565 2 bình luận 3 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

bug P3
Ngôn ngữ chính
Python
Star
18.8k
Fork
2.8k
Merge trung bình
16 giờ 26 phút
Pull request đã merge (30 ngày)
21

Mô tả

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()

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện ví dụ bằng cách sử dụng plotly.offline.plot với một trace Mesh3d trong Chrome, thay đổi opacity và các giá trị alpha của colorscale; đồng thời kiểm tra trường hợp Scatter3d được báo cáo. Theo dõi đường dẫn kết xuất 3D để xác định lý do hình học vẫn có thể hover nhưng lại không hiển thị, và xem issue là hoàn tất khi các biểu đồ Mesh3d và Scatter3d bán trong suốt được kết xuất chính xác.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
data-visualization
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
38/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.