В следующем примере сетка рисуется поверх моих береговых линий. Я хотел бы, чтобы береговые линии были на вершине (и все еще использовали блиттинг). Единственный способ получить то, что я хочу, это нарисовать береговые линии внутри функции init, а затем снова нарисовать их в функции обновления. Поэтому я перерисовываю их для каждого кадра. Есть ли более элегантный способ сделать это?
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from cartopy import crs as ccrs
fig = plt.figure()
ax = fig.add_subplot(111, projection=ccrs.PlateCarree())
ax.set_extent([-2,12,-2,12])
ax.coastlines('50m')
mesh = ax.pcolormesh(np.random.randn(10,10))
def init():
mesh.set_array([])
return mesh,
def update(t):
mesh.set_array(np.random.randn(9,9).ravel())
return mesh,
anim = FuncAnimation(fig, update, 100, init_func=init, blit=True)
plt.show()