МОРЕ import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import ArtistAnimation from mpl_toolkits.mplot3d import Axes3D # Prepare meshgrid x = np.linspace(-2 * np.pi, 2 * np.pi, 100) y = np.linspace(-2 * np.pi, 2 * np.pi, 100) xgrid, ygrid = np.meshgrid(x, y) # Set up the figure fig = plt.figure(figsize=(10, 6)) ax_3d = fig.add_subplot(111, projection='3d') ax_3d.set_zlim(-2, 2) # Limit the z-axis to keep the scale consistent # Initialize random wave centers num_waves = 5 wave_centers = np.random.rand(num_waves, 2) * 4 * np.pi - 2 * np.pi # Random centers # Create animation frames frames = [] for frame in range(50): # Number of frames in the animation zgrid = np.zeros_like(xgrid) for center in wave_centers: # Each wave's contribution is weaker the further it is from the center distance = np.sqrt((xgrid - center[0])**2 + (ygrid - center[1])**2) zgrid += np.sin(distance - 0.1 * frame) / (1 + distance / np.pi) # Create the surface plot for this frame line = ax_3d.plot_surface(xgrid, ygrid, zgrid, cmap='ocean') ax_3d.set_zlim(-2, 2) # Ensure the z-axis limit remains consistent frames.append([line]) # Generate the animation animation = ArtistAnimation(fig, frames, interval=100, blit=False, repeat=True) plt.show()
Что-то с matplotlib случилось. Анимации из видео не запускаются. Примеры из инета - также. Довольно странно, т.к, если сохранять в gif формате, то график отображается
В GoogleColab анимацию наверное нельзя увидеть? Код ваш туда загружаю, при запуске программы видно, что цикл работает, так как слева стрелка бегает по коду, а потом просто в конце одна картинка появляется и всё.
нужно выполнить следующие строки from google.colab import output output.enable_custom_widget_manager() %matplotlib widget если вы дает ошибку, то установите ipympl, выполнив в ячейке строку !pip install ipympl
Здравствуйте! А является ли возможным сделать анимацию движения примитива по графику? Скажем, чтобы по контуру графика параболы двигался красный кружок. Если возможно, можете, пожалуйста, сказать в каком направлении думать?)
@@selfedu_rus не сочтите за наглость, а есть ли у вас ещё примеры движения примитива по графику. Ваш предыдущий пример помог, но лучше понять устройство смогу увидев ещё пример. В частности, в файле grad1_1.py в функции df(x) не совсем понял откуда берётся выражение "2*x -5". Мне необходимо сделать анимацию движения по спирали, и я уверен, ваш пример поможет в этом разобраться.
вот выше кто-то тоже задавался этим вопросом и ее решил: Что-то с matplotlib случилось. Анимации из видео не запускаются. Примеры из инета - также. Довольно странно, т.к, если сохранять в gif формате, то график отображается. @cantwaitforit @cantwaitforit 11 месяцев назад (изменено) Решил проблему добавлением строчки в самом начале "%matplotlib qt5" (В jupyter)
Пишет, что пропущен обязательный аргумент, т.е. там где в коде: animation = FuncAnimation(fig, func = update_cos ..... т.е пропущена строчка func = update_cos
☺Значит надо искать другие источники. Кстати, быстро информацию можно также найти на сайта автора данного курса. Ссылка под видео. Читать намного конечно быстрее, чем смотреть всё видео
Большое спасибо за курс!
Большое спасибо за очередной познавательный и полезный курс.
ее я досмотрела этот курс теперь следующий надо смотреть
Искренне благодарю. Ван надо писать учебник, минимально меняя контент речи.
Пойду попробую сделать море в 3D)))
МОРЕ
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation
from mpl_toolkits.mplot3d import Axes3D
# Prepare meshgrid
x = np.linspace(-2 * np.pi, 2 * np.pi, 100)
y = np.linspace(-2 * np.pi, 2 * np.pi, 100)
xgrid, ygrid = np.meshgrid(x, y)
# Set up the figure
fig = plt.figure(figsize=(10, 6))
ax_3d = fig.add_subplot(111, projection='3d')
ax_3d.set_zlim(-2, 2) # Limit the z-axis to keep the scale consistent
# Initialize random wave centers
num_waves = 5
wave_centers = np.random.rand(num_waves, 2) * 4 * np.pi - 2 * np.pi # Random centers
# Create animation frames
frames = []
for frame in range(50): # Number of frames in the animation
zgrid = np.zeros_like(xgrid)
for center in wave_centers:
# Each wave's contribution is weaker the further it is from the center
distance = np.sqrt((xgrid - center[0])**2 + (ygrid - center[1])**2)
zgrid += np.sin(distance - 0.1 * frame) / (1 + distance / np.pi)
# Create the surface plot for this frame
line = ax_3d.plot_surface(xgrid, ygrid, zgrid, cmap='ocean')
ax_3d.set_zlim(-2, 2) # Ensure the z-axis limit remains consistent
frames.append([line])
# Generate the animation
animation = ArtistAnimation(fig, frames, interval=100, blit=False, repeat=True)
plt.show()
Спасибо, очень информативно.
Круть подборка, спасибо.
А как сделать анимацию, если порождающая функция неизвестна, а есть просто набор точек y_i(x_i) в разные моменты времени?
спасибо за информацию
Здравствуйте, а как можно интегрировать Matloplib в GUI? Например в Pyqt6 чтобы в самой программе рисовать график?
Спасибо, Сергей!
а можно сделать интерактив под юпитером? Я что то попытался в лоб, но у меня не удалось ...
Что-то с matplotlib случилось. Анимации из видео не запускаются. Примеры из инета - также. Довольно странно, т.к, если сохранять в gif формате, то график отображается
Решил проблему добавлением строчки в самом начале "%matplotlib qt5" (В jupyter)
А как создать анимацию полярной функции по типу эпитрохоиды?
В GoogleColab анимацию наверное нельзя увидеть? Код ваш туда загружаю, при запуске программы видно, что цикл работает, так как слева стрелка бегает по коду, а потом просто в конце одна картинка появляется и всё.
да, там вроде ограниченный функционал
@@selfedu_rus 👌
нужно выполнить следующие строки
from google.colab import output
output.enable_custom_widget_manager()
%matplotlib widget
если вы дает ошибку, то установите ipympl, выполнив в ячейке строку
!pip install ipympl
Второй курс пройден, я все ближе к ML
Спасибо! А можно как-то сохранять в GIF или подобный формат?
animation = animation.FuncAnimation( ... )
animation.save('моя анимация.gif',
writer='imagemagick',
fps=30)
@@selfedu_rus Спасибо!
Здравствуйте! А является ли возможным сделать анимацию движения примитива по графику? Скажем, чтобы по контуру графика параболы двигался красный кружок. Если возможно, можете, пожалуйста, сказать в каком направлении думать?)
делал прям такой пример, вот здесь: github.com/selfedu-rus/python-algorithms файл grad1_1.py
@@selfedu_rus большое спасибо!
@@selfedu_rus не сочтите за наглость, а есть ли у вас ещё примеры движения примитива по графику. Ваш предыдущий пример помог, но лучше понять устройство смогу увидев ещё пример. В частности, в файле grad1_1.py в функции df(x) не совсем понял откуда берётся выражение "2*x -5". Мне необходимо сделать анимацию движения по спирали, и я уверен, ваш пример поможет в этом разобраться.
@@РомаГусейнов-е6л 2x - 5 - это производная функции x^2 - 5x + 5. Пример похожий есть grad2.py для двумерного случая. Больше вроде никаких.
Добрый День! Скажите, пож-та, на этом обучающее видео по Matplotlib завершён?
да
@@selfedu_rus ок, спасибо за ответ!
А что делать если не воспроизводится анимация?
вот выше кто-то тоже задавался этим вопросом и ее решил:
Что-то с matplotlib случилось. Анимации из видео не запускаются. Примеры из инета - также. Довольно странно, т.к, если сохранять в gif формате, то график отображается.
@cantwaitforit
@cantwaitforit
11 месяцев назад (изменено)
Решил проблему добавлением строчки в самом начале "%matplotlib qt5" (В jupyter)
спасибо
Как по мне, от FuncAnimation только сложнее стало)
Я очень надеюсь, что ты не удалишь свои ролики
все сделал по видео, все модули загрузил, и выскакиевает все равно кончена ошибка, сука, весь день сижу график не могу сделать.
File "grg.py", line 21, in
animation = FuncAnimation(
TypeError: __init__() missing 1 required positional argument: 'func'
в другом варианте, втором, где график должен идти, все без ошибок, но он тупо стоит, все по видео, не единой ошибки
Пишет, что пропущен обязательный аргумент, т.е. там где в коде: animation = FuncAnimation(fig, func = update_cos ..... т.е пропущена строчка func = update_cos
@@user-zs2pg6lw8d спасибо
Вот рабочий код:
import matplotlib.pyplot as plt
import matplotlib.animation as an
import numpy as np
def update_cos (frame, line, x):
pass
line.set_ydata(np.cos(x+frame))
return[line]
fig, ax = plt.subplots()
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
y = np.cos(x)
line, = ax.plot(x, y)
phasa = np.arange(0, 4*np.pi, 0.1)
animation = an.FuncAnimation(
fig,
func=update_cos,
frames=phasa,
fargs=(line, x),
interval= 30,
blit= True,
repeat=False)
plt.show()
видео слишком перегружено. мне нужно только фанканимейшн, но вместо этого я вижу кучу непонятних коментариев, и не могу разобраться
☺Значит надо искать другие источники. Кстати, быстро информацию можно также найти на сайта автора данного курса. Ссылка под видео. Читать намного конечно быстрее, чем смотреть всё видео