Matplotlib: как нарисовать вертикальную плоскость в 3D фигуре - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу нарисовать вертикальную плоскость, определяемую

5 = x + y

на трехмерной фигуре с использованием Matplotlib.

Я посмотрел на это и это , но шансов нет. Я также нашел mpl_toolkits.mplot3d.art3d.line_2d_to_3d на эту ссылку , которая говорит

Преобразование 2D-линии в 3D

Выглядело многообещающе для меня, но я не мог понять, как его использовать.

Теперь, как бы вы изменили следующий код для достижения моей цели?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

xs = np.linspace(0, 10, 100)
ys = np.linspace(0, 10, 100)

X, Y = np.meshgrid(xs, ys)
Z # ?????????

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 02 ноября 2018

Ваша ошибка в том, что вы определяете xs и ys как независимые переменные, в то время как они являются зависимыми (x + y = 5). zs здесь независимо:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

xs = np.linspace(0, 10, 100)
zs = np.linspace(0, 10, 100)

X, Z = np.meshgrid(xs, zs)
Y = 5 - X

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()

Пример вывода:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...