Как `plot_surface` из mplot3 использует свои первые два двумерных параметра? - PullRequest
0 голосов
/ 14 сентября 2018

В поисках способа построения функции z=f(x,y) с помощью mplot3d я нашел https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#surface-plots, где первый пример выглядит правильно.

Глядя на параметры plot_surface(X, Y, Z), все три из них должны быть 2 -мерных массивов одинакового размера.

Я понимаю, почему Z должен быть двумерным, но почему X и Y?Я думал, что просто не понимаю, что такое «поверхностный график», но все ссылки, не являющиеся matplotlib, которые я нашел, используют одномерные массивы для первых двух параметров.Как используются двумерные X и Y?

1 Ответ

0 голосов
/ 15 сентября 2018

Я постараюсь объяснить словами.plot_surface(X, Y, Z) создает трехмерную фигуру.Теперь предположим, что у нас есть двумерная (xy) сетка 10x10 = 100 точек, где x переходит от 1 до 10, а y - от 1 до 10. Теперь в целом существует 100 пар (x, y) как (1,1), (1,2), (1,3) ... (1,10), (2,1), (2,2) .... (2,10) .... (10,1), (10,2) ... (10,10).

Теперь для каждой из этой пары (x, y) вы определяете соответствующее значение z.Это означает, что всего для 100 (x, y) пар у вас есть 100 значений z.Если вы просто используете X=[1,2,3,4,5,6,7,8,9,10] и Y=[1,2,3,4,5,6,7,8,9,10], то вы в основном хотите дать координаты X для всех этих 100 точек.Поскольку каждое значение Y совместно использует одни и те же X-координаты, эти 10 X-значений будут повторяться 10 раз (поскольку у вас есть 10 Y-значений).Следовательно, вы создаете сетку-сетку из 100 значений X.То же самое относится и к Y, поэтому у вас есть сетка из 100 значений Y.Имея эти 100 пар (x, y), сгенерированных из сетки, и имея 100 Z-значений, вы просто используете plot_surface(X, Y, Z).

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