Я пытаюсь сгенерировать четырехпанельную анимацию изменения температуры со временем. Каждая из четырех панелей в подзаголовке должна быть анимированной картой; разница между каждой панелью является используемыми данными. Мне удалось сгенерировать анимацию, используя один набор данных (без сюжетных) со следующим кодом:Matplotlib Subplot Animation с базовой картой
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.basemap import Basemap
#dummy temperature data with 10 time-steps
y=np.random.randn(10, 60, 100)
fig = plt.figure()
m = Basemap(projection='kav7',lon_0=0)
lats=np.linspace(90,-90,y.shape[1])
lons=np.linspace(-180,180,y.shape[2])
lons, lats = np.meshgrid(lons,lats)
m.drawparallels(np.arange(-90.,99.,30.), labels=[1,0,0,0])
m.drawmeridians(np.arange(-180.,180.,60.), labels=[0,0,0,1])
m.drawcoastlines(linewidth=0.25)
m.pcolormesh(lons,lats,y[0],cmap=plt.cm.bwr, shading='flat',latlon=True)
def init():
m
def animate(i):
m.pcolormesh(lons,lats,y[i],cmap=plt.cm.bwr, shading='flat',latlon=True)
return m
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=10, interval=100) #interval = number of milliseconds between frames
anim.save('movie.mp4')
Я смотрел на многочисленных примерах (1, 2, 3) в сюжетные анимации, но до сих пор не имеют ни малейшего представления как это сделать с помощью Basemap.
Это был бы лучший вопрос, если бы вы связались с одним из многочисленных примеров, о которых вы говорили. http://matplotlib.org/api/animation_api.html?highlight=funcanimation#matplotlib.animation.FuncAnimation –
Спасибо за редактирование в примерах! И для принятия ответа. Добро пожаловать в SO! –