Как правильно замаскировать участок цилиндрической поверхности в графике поверхности Plotly 3D?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно замаскировать участок цилиндрической поверхности в графике поверхности Plotly 3D?

Сообщение Anonymous »

Я пытаюсь построить трехмерную цилиндрическую трубу с помощью Plotly в Python и хочу исключить часть трубы по углу. Я использую np.nan для маскировки значений в массиве, но сталкиваюсь с проблемами искажения формы.
Ниже приведен код, который я использую

Код: Выделить всё

import plotly.graph_objects as go
import numpy as np

mask_cylinder = False

theta = np.linspace(0, 2 * np.pi, 100)
z = np.linspace(0, 10, 100)
theta_grid, z_grid = np.meshgrid(theta, z)

r = 1

x = r * np.cos(theta_grid)
y = r * np.sin(theta_grid)

if mask_cylinder:
mask = theta_grid > np.deg2rad(25) # exclude beyond 25 degrees
x = np.where(mask, np.nan, x)
y = np.where(mask, np.nan, y)
z = np.where(mask, np.nan, z_grid)
else:
z = z_grid

fig = go.Figure()

fig.add_trace(
go.Surface(
x=x,
y=y,
z=z,
colorscale="Viridis",
showscale=True,
)
)

fig.update_layout(
title="3D Pipe",
scene=dict(
xaxis_title="X Axis",
yaxis_title="Y Axis",
zaxis_title="Z Axis",
xaxis=dict(visible=True),
yaxis=dict(visible=True),
zaxis=dict(visible=True),
),
)

fig.show()
Этого можно добиться, используя прозрачность, т. е. нарисовав первые 25 градусов с полной непрозрачностью, а следующие 335 градусов с полной прозрачностью. Это сохраняет исходную цилиндрическую геометрию, но требует больших вычислительных затрат, особенно если разрешение выше.
Есть ли лучший способ исключить определенные области, сохранив при этом целостность цилиндрической геометрии?

Подробнее здесь: https://stackoverflow.com/questions/792 ... rface-plot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как правильно замаскировать участок цилиндрической поверхности в графике поверхности Plotly 3D?
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Проблема с функцией наведения на 3D-графике поверхности в Plotly версии 2.35.2.
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Проблема с функцией наведения на 3D-графике поверхности в Plotly версии 2.35.2.
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Проблема с функцией наведения на 3D-графике поверхности в Plotly версии 2.35.2.
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как изменить язык/локаль в Dash (Plotly) или метку панели инструментов Plotly?
    Anonymous » » в форуме Python
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»