#12. Как строить трехмерные графики | Matplotlib уроки

Sdílet
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...

Komentáře • 38

  • @mynameiszabil.3157
    @mynameiszabil.3157 Před 3 lety +17

    какое же классный канал, на этом канале я много чего узнал нового! продолжайте в том же духе! Жаль, что ваш труд никто не замечает.. А ваш сайт просто прекрасный! все так понятно написано, не знаю чтобы делал без вас, не забрасывайте!

    • @user-fm1qf3nl7d
      @user-fm1qf3nl7d Před 3 lety +2

      Заметят 100 % Материал очень качественный!!!

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov Před rokem +2

    Сергей, благодарю! Качественный урок 👍🔥💯

  • @friend1cat
    @friend1cat Před 3 lety +3

    Спасибо, Сергей!

  • @user-qj6tk5fw9p
    @user-qj6tk5fw9p Před 8 měsíci +1

    Огромное спасибо!

  • @user-px9rd6oy8i
    @user-px9rd6oy8i Před 2 lety +7

    Чтобы двигать 3Д сцену в Jupyter Notebook используйте функцию
    %matplotlib notebook

    • @Cumslayer
      @Cumslayer Před 10 měsíci

      а не знаешь часом как это сделать для spyder?

    • @mormonteg4073
      @mormonteg4073 Před 9 měsíci

      И для google collab ))

    • @ozaaraa
      @ozaaraa Před 6 měsíci +1

      ​@@Cumslayerдля spyder: инструменты --> параметры --> консоль iPython --> графика --> бэкенд --> автоматически.

  • @user-xp8bb9mc8q
    @user-xp8bb9mc8q Před 3 lety +1

    Спасибо

  • @mirlan19
    @mirlan19 Před 2 lety +1

    спасибо

  • @shncl
    @shncl Před 11 měsíci +2

    омагад, опять вы, вы что сталкер?

  • @waydao4958
    @waydao4958 Před 3 lety +2

    Шапочка получилась))

  • @shadowgamer-bohdancraft

    Я мододел для коекакой игры, и там модели сделаны спомощью какраз этих графиков, так вот мне нужно както вывести данные из файла отвечающего за модель на график (в другом случеи мне прийдёться на угад писатт)

  • @user-rm4yq8yg7e
    @user-rm4yq8yg7e Před 2 lety

    Сергей, добрый день, давно уже ваши ролики помогают мне в обучении. По теме - столкнулся с задачей поиска экстремума двух переменных. В интернете совсем не нашел информации по реализации этого на языке Питон. Может, Вы сможете дать мне подсказку в этом вопросе?

    • @selfedu_rus
      @selfedu_rus  Před 2 lety

      Это можно сделать или градиентными методами или методом наименьших квадратах, если используется квадратическая функция потерь. Об этом есть на канале.

  • @serg888fert4
    @serg888fert4 Před 2 lety +2

    здравствуйте. Как сделать, чтобы график выводился в отдельном окне и его можно было мышкой вращать, как в видео?

    • @user-lh6xe3zi1t
      @user-lh6xe3zi1t Před rokem

      Автор работает по - моему в PyCharm (среда разработки), наверное там можно вращать при запуске программ. Я например в GoogleColab программирую (онлайн), там нет возможности вращать. От среды разработки думаю зависит.

    • @serg888fert4
      @serg888fert4 Před rokem

      @@user-lh6xe3zi1t нет. Его можно вращать везде. Там задаётся опция. И появляется эта возможность. Но я уже забыл.

    • @user-lh6xe3zi1t
      @user-lh6xe3zi1t Před rokem

      @@serg888fert4 👌тогда буду искать инфо по нему. Спасибо!

  • @user-qb5bo3jv3e
    @user-qb5bo3jv3e Před 2 lety

    Спасибо за урок! Скажите пожалуйста, а зачем нам нужны точки которые образуют сетку? Почему нельзя просто взять произвольные точки и значение функции в этих произвольных точках?

    • @selfedu_rus
      @selfedu_rus  Před 2 lety +1

      сетка в узлах не обязательно может быть квадратной, а любой конфигурации, поэтому, в общем виде задаются через массивы точек

    • @user-qb5bo3jv3e
      @user-qb5bo3jv3e Před 2 lety

      @@selfedu_rus Ясно, спасибо!

    • @user-qb5bo3jv3e
      @user-qb5bo3jv3e Před 2 lety

      @@selfedu_rus Еще скажите пожалуйста, на что именно влияет сетка? Я думаю что она формирует область над которой будет построен график. Так ли это?

    • @selfedu_rus
      @selfedu_rus  Před 2 lety +1

      @@user-qb5bo3jv3e да, верно, в ее узлах просчитывает график и строится

    • @user-qb5bo3jv3e
      @user-qb5bo3jv3e Před 2 lety

      @@selfedu_rus Спасибо!

  • @user-lf9tm6xx6p
    @user-lf9tm6xx6p Před 2 lety +1

    Спасибо большое. Насколько большой график так можно построить?

    • @selfedu_rus
      @selfedu_rus  Před 2 lety

      пока устройство будет справляться с его отображением и будет хватать памяти :)

    • @user-lf9tm6xx6p
      @user-lf9tm6xx6p Před 2 lety +1

      @@selfedu_rus это здорово)
      Спасибо ещё раз
      Надеюсь, сделаю курсовую, единственное надо разобраться, как области графика отсекать

  • @user-zw1wp3ml3u
    @user-zw1wp3ml3u Před rokem +2

    А что делать если все нужные библиотеки установлены, а выводит просто пустой график ? 0:56

    • @user-lh6xe3zi1t
      @user-lh6xe3zi1t Před rokem

      У меня та же проблема. Работаю в GoogleColab. С сайта автора скачал этот код, где указывается конкретный параметр: ax_3d = fig.add_subplot(projection='3d') и всё работает как надо. Ссылка на его сайт есть под этим видео.

  • @torri11
    @torri11 Před rokem

    Сам пример слишком сложный....можно как то попроще на пальцах...из говна и палок...для деревни.
    спасибо.

  • @lokifromasgard8524
    @lokifromasgard8524 Před rokem

    Почему-то у меня при выводе графиков и двумерных и трехмерных при добавлении координатной оси запрашивает параметр 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()
    почему так? (спасибо за ответ)

  • @m.s.5610
    @m.s.5610 Před rokem

    Вот такую вот ошибку выводит для примера с 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,)

    • @m.s.5610
      @m.s.5610 Před rokem

      Сам код::
      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()

    • @user-jy3wc4eg2f
      @user-jy3wc4eg2f Před rokem

      @@m.s.5610 В конце кода строка 'ax_3d.plot(x, y, z)' лишняя, мы уже вызываем график строкой 'ax_3d.plot_wireframe(xgrid, ygrid, zgrid)'

    • @m.s.5610
      @m.s.5610 Před rokem

      @@user-jy3wc4eg2f спасибо. Заработало!