import matplotlib.pyplot as plt import numpy as np from matplotlib.animation import FuncAnimation from matplotlib.offsetbox import OffsetImage, AnnotationBbox # 创建一个画布和坐标轴对象 fig, ax = plt.subplots() # 创建一个参数t,范围是0到2π t = np.linspace(0, 2 * np.pi, 100) # 根据心形函数创建x和y的坐标 x = 16 * np.sin(t) ** 3 y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t) # 创建一个轨迹的列表,颜色设为红色 line, = plt.plot([], [], 'r', linewidth=3) # 设置x和y轴的限制以适应心形 ax.set_xlim([-20, 20]) ax.set_ylim([-20, 20]) # 去除x和y轴的标签 ax.get_xaxis().set_visible(False) ax.get_yaxis().set_visible(False) # 载入图片.可以替换成自己想要的背景图 image_path = 'C:/Users/xxx/Desktop/copy_3.jpg' image = plt.imread(image_path) imagebox = OffsetImage(image, zoom=0.5) ab = AnnotationBbox(imagebox, (0.5, 0.5), frameon=False, xycoords='axes fraction') ax.add_artist(ab) # 创建初始化函数,初始化轨迹线 def init(): line.set_data([], []) return line, # 创建更新函数,用于更新点的位置 def update(i): line.set_data(x[:i], y[:i]) return line, # 使用FuncAnimation函数创建动画 ani = FuncAnimation(fig, update, frames=range(len(x)), init_func=init, blit=True, interval=100) plt.show()