📌  相关文章
📜  Python中的 Matplotlib.axes.Axes.set_animated()

📅  最后修改于: 2022-05-13 01:55:16.838000             🧑  作者: Mango

Python中的 Matplotlib.axes.Axes.set_animated()

Matplotlib是Python中的一个库,它是 NumPy 库的数值数学扩展。 Axes 类包含大部分图形元素:Axis、Tick、Line2D、Text、Polygon 等,并设置坐标系。 Axes 的实例通过回调属性支持回调。

matplotlib.axes.Axes.set_animated()函数

matplotlib 库的 axes 模块中的Axes.set_animated()函数用于设置艺术家的动画状态。

下面的示例说明了 matplotlib.axes 中的 matplotlib.axes.Axes.set_animated()函数:

示例 1:

# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
  
  
data = np.array([[1, 2, 3, 4, 5], 
                 [7, 4, 9, 2, 3]])
  
fig = plt.figure()
ax = plt.axes(xlim =(0, 20), ylim =(0, 20))
  
line, = ax.plot([], [], 'r-')
annotation = ax.annotate('',
                         xy =(data[0][0],
                              data[1][0]))
  
annotation.set_animated(True)
  
def init():
    return line, annotation
  
def update(num):
    newData = np.array([[1 + num,
                         2 + num / 2,
                         3,
                         4 - num / 4,
                         5 + num],
                        [7, 4, 
                         9 + num / 3,
                         2, 3]])
      
    line.set_data(newData)
    return line, annotation
  
anim = animation.FuncAnimation(fig,
                               update, 
                               frames = 25,
                               init_func = init,
                               interval = 200,
                               blit = True)
   
fig.suptitle('matplotlib.axes.Axes.set_animated() \
function Example\n\n', fontweight ="bold")
  
plt.show()

输出:

示例 2:

# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
  
  
fig, ax = plt.subplots()
  
ax.set_xlim([-1, 1])
ax.set_ylim([-1, 1])
  
L = 50
theta = np.linspace(0, 2 * np.pi, L)
r = np.ones_like(theta)
  
x = r * np.cos(theta)
y = r * np.sin(theta)
  
line, = ax.plot(1, 0, 'ro')
  
annotation = ax.annotate(
    'annotation', xy =(1, 0), xytext =(-1, 0),
    arrowprops = {'arrowstyle': "->"}
)
annotation.set_animated(False)
  
  
def update(i):
  
    new_x = x[i % L]
    new_y = y[i % L]
    line.set_data(new_x, new_y)
  
    annotation.set_position((-new_x, -new_y))
    annotation.xy = (new_x, new_y)
  
    return line, annotation
  
ani = animation.FuncAnimation(
    fig, update, interval = 500, blit = False
)
   
fig.suptitle('matplotlib.axes.Axes.set_animated()\
 function Example\n\n', fontweight ="bold")
  
plt.show()

输出: