Построение 3д модели python/plotly

Нужно получить 3д модель треугольной призмы и добавлять в нее точки
Должно получится что-то вроде этого (написал на css и js)

введите сюда описание изображения

Начал писать на plotly, но не получается даже призму сделать. Подскажите, что не так и куда копать

import plotly.graph_objects as go
import numpy as np


prism_x = [0, 5, 10, 0, 5, 10]
prism_z = [0, 0, 0, 10, 10, 10]
prism_y = [0, 5, 0, 0, 5, 0]

fig = go.Figure(data=[
    go.Mesh3d(
        x=prism_x, y=prism_y, z=prism_z,
        opacity=0.5,
        color='rgba(244, 22, 100, 0.6)',
        flatshading=True)
])
fig.update_layout(
        scene=dict(
            xaxis=dict(range=[-1, 11]),
            yaxis=dict(range=[-1, 6]),
            zaxis=dict(range=[-1, 11])),
        margin=dict(r=20, l=20, t=20, b=20))

fig.show()

Ответы (1 шт):

Автор решения: strawdog

Ну призму-то нарисовать можно, и точки на ней отметить. вопрос в том, насколько вам нужен интерактив, может вам проще через matplotlib.pyplot решить вопрос:

import numpy as np
import plotly.graph_objects as go
import plotly.offline as pyo
pyo.init_notebook_mode() # мои настройки для работы plotly в jupyter lab
                         # если вы работаете в другой среде, вам они не нужны

prism_x = [0, 5, 10, 0, 5, 10]
prism_z = [0, 0, 0, 10, 10, 10]
prism_y = [0, 5, 0, 0, 5, 0]

fig = go.Figure(data=[
    go.Scatter3d(x=prism_x, y=prism_y, z=prism_z,
                  mode='markers',
                  marker=dict(size=2)
                 ),
    go.Mesh3d(x=prism_x, y=prism_y, z=prism_z,
              alphahull = 0,
              opacity=.5,
              flatshading = True
             ),
    ])

fig.update_layout(
        scene=dict(
            xaxis=dict(range=[-1, 11]),
            yaxis=dict(range=[-1, 6]),
            zaxis=dict(range=[-1, 11])),
        margin=dict(r=20, l=20, t=20, b=20))

fig.show(renderer='iframe') # мои настройки рендерера для jupyter lab
                            # если вы работаете в другой среде, вам они могут
                            # не понадобиться  

введите сюда описание изображения

→ Ссылка