给 matplotlib plot / gif 添加背景图片

Add a background image to matplotlib plot / gif

我有一个任务多次调用绘图并根据结果创建 gif(请参阅下面的可重现示例)。

我的问题是:我想给这个 gif 添加背景图片。我的猜测是,我必须在追加之前将它添加到循环中的某处。

到目前为止我发现了什么,虽然很搞笑,但与我的问题并没有真正相关:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.animation import PillowWriter
import time

rng = np.random.default_rng()
fig = plt.figure(figsize=[10, 9])

ims = []
for i in range(200):
    df = pd.DataFrame(rng.integers(0, 100, size=(100, 2)), columns=list('xy'))
    x = df["x"]
    y = df["y"]
    im = plt.plot(x, y, "b.")
    ims.append(im)
    print(i)
    
    
    

ani = animation.ArtistAnimation(fig, ims, interval=500, blit=True,
                                repeat_delay=1000)

writer = PillowWriter(fps=2)
ani.save("demo2.gif", writer=writer)

来源:

我对此经验不多,但我能够显示我事先用 plt.imshow() 调用的图像。由于文件大小限制,无法上传 demo.gif。抱歉,示例中使用的图片效果不佳。对不起。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.animation import PillowWriter
import time
import matplotlib.image as mpimg

rng = np.random.default_rng()
fig = plt.figure(figsize=[10, 9])

img = mpimg.imread('lena_thumbnail_center_square.jpg')

ims = []
for i in range(200):
    df = pd.DataFrame(rng.integers(0, 100, size=(100, 2)), columns=list('xy'))
    x = df["x"]
    y = df["y"]
    im = plt.plot(x, y, "b.")
    ims.append(im)
#     print(i)   

ani = animation.ArtistAnimation(fig, ims, interval=500, blit=True,
                                repeat_delay=1000)
plt.imshow(img)

writer = PillowWriter(fps=2)
ani.save("demo2.gif", writer=writer)