Я хочу использовать matplotlib.animation
для динамического рисования непрерывных вертикальных линий, как в приведенном примере. Но я понятия не имею, как заставить это работать. пример
Предыдущая программа выглядит следующим образом:
import numpy as np
import matplotlib.pyplot as pl
from matplotlib.animation import FuncAnimation
a=np.arange(0,1000,20)
fig=pl.figure()
xx=np.array([])
ax=fig.add_subplot(1,1,1,xlim=(0,1000),ylim=(0,1))
line,=ax.axvline(x=np.array([]),ymin=0,ymax=0.5,animated=False)
def init():
line.set_data([])
return line,
def update(i):
xx=np.append(xx,np.argwhere(i==a))
line.set_data(xx)
return line,
ani=FuncAnimation(fig,update,frames=np.arange(0,1000,1),interval=10,init_func=init,blit=True)
pl.show()
, а ошибка следующая:
Traceback (most recent call last):
File "<ipython-input-21-762281d37b01>", line 1, in <module>
runfile('C:/Users/Administrator/Desktop/untitled0.py', wdir='C:/Users/Administrator/Desktop')
File "C:\Users\Administrator\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Administrator/Desktop/untitled0.py", line 17, in <module>
line,=ax.axvline(x=np.array([]),ymin=0,ymax=0.5,animated=False)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 935, in axvline
self.add_line(l)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 1902, in add_line
self._update_line_limits(line)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 1924, in _update_line_limits
path = line.get_path()
File "C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\lines.py", line 1027, in get_path
self.recache()
File "C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\lines.py", line 679, in recache
self._xy = np.column_stack(np.broadcast_arrays(x, y)).astype(float)
File "<__array_function__ internals>", line 6, in broadcast_arrays
File "C:\Users\Administrator\Anaconda3\lib\site-packages\numpy\lib\stride_tricks.py", line 264, in broadcast_arrays
shape = _broadcast_shape(*args)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\numpy\lib\stride_tricks.py", line 191, in _broadcast_shape
b = np.broadcast(*args[:32])
ValueError: shape mismatch: objects cannot be broadcast to a single shape