#12. Как строить трехмерные графики | Matplotlib уроки
Vložit
- čas přidán 24. 04. 2021
- Строим трехмерные графики функциями plot_wireframe() и plot_surface(), а также с помощью plot() и scatter(). Создание трехмерной системы координат с помощью класса Axes3D и через параметр projection функции add_subplot(). Формирование двумерной сетки функцией meshgrid() пакета numpy.
Инфо-сайт: proproprogs.ru/modules/
Axes3D: matplotlib.org/stable/api/_as...
Matplotlib: matplotlib.org/stable/content...
какое же классный канал, на этом канале я много чего узнал нового! продолжайте в том же духе! Жаль, что ваш труд никто не замечает.. А ваш сайт просто прекрасный! все так понятно написано, не знаю чтобы делал без вас, не забрасывайте!
Заметят 100 % Материал очень качественный!!!
Сергей, благодарю! Качественный урок 👍🔥💯
Спасибо, Сергей!
Огромное спасибо!
Чтобы двигать 3Д сцену в Jupyter Notebook используйте функцию
%matplotlib notebook
а не знаешь часом как это сделать для spyder?
И для google collab ))
@@Cumslayerдля spyder: инструменты --> параметры --> консоль iPython --> графика --> бэкенд --> автоматически.
Спасибо
спасибо
омагад, опять вы, вы что сталкер?
Шапочка получилась))
Я мододел для коекакой игры, и там модели сделаны спомощью какраз этих графиков, так вот мне нужно както вывести данные из файла отвечающего за модель на график (в другом случеи мне прийдёться на угад писатт)
Сергей, добрый день, давно уже ваши ролики помогают мне в обучении. По теме - столкнулся с задачей поиска экстремума двух переменных. В интернете совсем не нашел информации по реализации этого на языке Питон. Может, Вы сможете дать мне подсказку в этом вопросе?
Это можно сделать или градиентными методами или методом наименьших квадратах, если используется квадратическая функция потерь. Об этом есть на канале.
здравствуйте. Как сделать, чтобы график выводился в отдельном окне и его можно было мышкой вращать, как в видео?
Автор работает по - моему в PyCharm (среда разработки), наверное там можно вращать при запуске программ. Я например в GoogleColab программирую (онлайн), там нет возможности вращать. От среды разработки думаю зависит.
@@user-lh6xe3zi1t нет. Его можно вращать везде. Там задаётся опция. И появляется эта возможность. Но я уже забыл.
@@serg888fert4 👌тогда буду искать инфо по нему. Спасибо!
Спасибо за урок! Скажите пожалуйста, а зачем нам нужны точки которые образуют сетку? Почему нельзя просто взять произвольные точки и значение функции в этих произвольных точках?
сетка в узлах не обязательно может быть квадратной, а любой конфигурации, поэтому, в общем виде задаются через массивы точек
@@selfedu_rus Ясно, спасибо!
@@selfedu_rus Еще скажите пожалуйста, на что именно влияет сетка? Я думаю что она формирует область над которой будет построен график. Так ли это?
@@user-qb5bo3jv3e да, верно, в ее узлах просчитывает график и строится
@@selfedu_rus Спасибо!
Спасибо большое. Насколько большой график так можно построить?
пока устройство будет справляться с его отображением и будет хватать памяти :)
@@selfedu_rus это здорово)
Спасибо ещё раз
Надеюсь, сделаю курсовую, единственное надо разобраться, как области графика отсекать
А что делать если все нужные библиотеки установлены, а выводит просто пустой график ? 0:56
У меня та же проблема. Работаю в GoogleColab. С сайта автора скачал этот код, где указывается конкретный параметр: ax_3d = fig.add_subplot(projection='3d') и всё работает как надо. Ссылка на его сайт есть под этим видео.
Сам пример слишком сложный....можно как то попроще на пальцах...из говна и палок...для деревни.
спасибо.
Почему-то у меня при выводе графиков и двумерных и трехмерных при добавлении координатной оси запрашивает параметр 111 как пример иначе график не выводится
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(7,5))
#ax_3d = Axes3D(fig)
ax_3d = fig.add_subplot(111,projection = '3d')
x = np.linspace(0,10,20)
z = np.cos(x)
ax_3d.plot(x,x,z)
plt.show()
почему так? (спасибо за ответ)
Вот такую вот ошибку выводит для примера с 3ВD-графиком:
Traceback (most recent call last):
File "/home/lapadzeltena/MPL/12.py", line 56, in
ax_3d.plot(x, y, z)
File "/home/lapadzeltena/.local/lib/python3.10/site-packages/mpl_toolkits/mplot3d/axes3d.py", line 1485, in plot
zs = np.broadcast_to(zs, np.shape(xs))
File "", line 200, in broadcast_to
File "/home/lapadzeltena/.local/lib/python3.10/site-packages/numpy/lib/stride_tricks.py", line 413, in broadcast_to
return _broadcast_to(array, shape, subok=subok, readonly=True)
File "/home/lapadzeltena/.local/lib/python3.10/site-packages/numpy/lib/stride_tricks.py", line 349, in _broadcast_to
it = np.nditer(
ValueError: operands could not be broadcast together with remapped shapes [original->remapped]: (58,) and requested shape (63,)
Сам код::
fig = plt.figure(figsize=(7, 4))
ax_3d = fig.add_subplot(projection='3d')
x = np.arange(-2*np.pi, 2*np.pi, 0.2)
y = np.arange(-2*np.pi, 2*np.pi, 0.2)
xgrid, ygrid = np.meshgrid(x, y)
zgrid = np.sin(xgrid) * np.sin(ygrid) / (xgrid * ygrid)
ax_3d.plot_wireframe(xgrid, ygrid, zgrid)
ax_3d.set_xlabel('x')
ax_3d.set_ylabel('y')
ax_3d.set_zlabel('z')
ax_3d.plot(x, y, z)
plt.show()
@@m.s.5610 В конце кода строка 'ax_3d.plot(x, y, z)' лишняя, мы уже вызываем график строкой 'ax_3d.plot_wireframe(xgrid, ygrid, zgrid)'
@@user-jy3wc4eg2f спасибо. Заработало!