(1)绘制一个正弦曲线;
(2)绘制一个红色圆点,该圆点最初位于正弦曲线的左端;
(3)制作一个圆点沿曲线运动的动画,并时刻显示圆点的坐标位置。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 绘制正弦曲线的函数
def draw_sine_curve():
x = np.linspace(0, 2 * np.pi, 100) # 生成x轴上的点,从0到2π
y = np.sin(x) # 根据x生成y轴上的点(正弦函数)
fig, ax = plt.subplots(tight_layout=True) # 创建一个新的图形和坐标轴
ax.plot(x, y) # 绘制正弦曲线
return fig, ax, x, y
# 更新圆点和文本的函数
def update_points(num, point_ani, text_pt, x, y):
point_ani.set_data(x[num], y[num]) # 设置圆点的位置
text_pt.set_text(f"x={x[num]:.2f},y={y[num]:.2f}") # 设置文本内容,显示x和y的坐标
return point_ani, text_pt
# 绘制正弦曲线,圆点和文本
fig, ax, x, y = draw_sine_curve()
point_ani, = ax.plot(x[0], y[0], "ro") # 绘制初始圆点
text_pt = ax.text(0.05, 0.9, "", fontsize=16) # 绘制初始文本,位置需要适当调整
# 创建动画
ani = animation.FuncAnimation(fig, update_points, frames=np.arange(0, 100),
fargs=(point_ani, text_pt, x, y), interval=100, blit=True)
# 显示图形和动画
plt.show()