绘制一个具有动画效果的图表,要求如下: (1)绘制一条正弦曲线; (2)绘制一个红色圆点,该圆点最初位于正弦曲线的左端; (3)制作一个圆点沿曲线运动的动画,并在右上角时刻显示圆点当前的坐标位置; (4)在图形左下角用红色标注你的姓名和学号
时间: 2023-12-26 15:06:21 浏览: 143
以下是使用Python中的matplotlib库绘制具有动画效果的图表的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 设置绘图参数
fig, ax = plt.subplots()
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
# 绘制正弦曲线和起始圆点
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
line, = ax.plot(x, y)
dot, = ax.plot(x[0], y[0], 'ro')
# 定义动画函数
def animate(i):
dot.set_data(x[i], y[i])
ax.set_title('Coordinate: ({:.2f}, {:.2f})'.format(x[i], y[i]))
return dot,
# 创建动画对象
ani = FuncAnimation(fig, animate, frames=len(x), interval=50, blit=True)
# 在图形左下角添加姓名和学号
ax.text(0, -1.2, 'Name: Your Name\nStudent ID: 12345678', color='r')
# 显示动画
plt.show()
```
在代码中,首先设置图形的x、y轴范围,并绘制了一条正弦曲线和一个红色圆点。然后定义了一个动画函数`animate()`,它在每个时刻更新圆点的位置,并在右上角显示当前坐标。接着使用`FuncAnimation`创建动画对象,其中`frames`参数指定动画的帧数,`interval`参数指定每帧之间的间隔时间,`blit=True`参数表示只绘制变化的部分以提高性能。最后在图形左下角添加姓名和学号,并调用`plt.show()`显示动画。
阅读全文