为了账号安全,请及时绑定邮箱和手机立即绑定

给 matplotlib plot / gif 添加背景图片

给 matplotlib plot / gif 添加背景图片

眼眸繁星 2023-05-16 15:56:13
我有一个任务多次调用绘图并根据结果创建 gif(请参阅下面的可重现示例)。我的问题是:我想为这个 gif 添加背景图像。我的猜测是,我必须在附加之前将它添加到循环中的某个位置。到目前为止我发现了什么,虽然很搞笑并没有真正涉及到我的问题:在 matplotlib 图上绘制裁剪后的背景图像import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfrom matplotlib.animation import PillowWriterimport timerng = 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)
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

我对此没有太多经验,但我能够显示我事先调用的图像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)

//img1.sycdn.imooc.com//6463373a000129d405430526.jpg

查看完整回答
反对 回复 2023-05-16
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信