如何解决将背景图像添加到matplotlib图/ gif
我有一个任务,需要多次调用绘图并根据结果创建gif(请参见下面的可重现示例)。
我的问题是:我想向此gif添加背景图像。我的猜测是,在追加之前,我必须将其添加到循环中的某个位置。
到目前为止,我发现的内容虽然很有趣,但与我的问题并没有真正的联系:
Plotting a cropped background image on a matplotlib graph
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)
来源:
How to create a DataFrame of random integers with Pandas?
解决方法
我对此没有太多经验,但是我能够显示我之前用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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。