2016-03-07 2 views
8

Я новичок в python и stackoverflow, и я перехожу к примерам в matplotlib. Я искал решение этой проблемы без везения, хотя мне удалось найти previously unanswered question в stackoverflow с той же проблемой.Анимация от matplotlib не работает в spyder

В принципе, я скопировал код, доступный из примеров, по адресу matplotlib; например:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
def data_gen(t=0): 
    cnt = 0 
    while cnt < 1000: 
     cnt += 1 
     t += 0.1 
     yield t, np.sin(2*np.pi*t) * np.exp(-t/10.) 
def init(): 
    ax.set_ylim(-1.1, 1.1) 
    ax.set_xlim(0, 10) 
    del xdata[:] 
    del ydata[:] 
    line.set_data(xdata, ydata) 
    return line, 

fig, ax = plt.subplots() 
line, = ax.plot([], [], lw=2) 
ax.grid() 
xdata, ydata = [], [] 


def run(data): 
    # update the data 
    t, y = data 
    xdata.append(t) 
    ydata.append(y) 
    xmin, xmax = ax.get_xlim() 

    if t >= xmax: 
     ax.set_xlim(xmin, 2*xmax) 
     ax.figure.canvas.draw() 
    line.set_data(xdata, ydata) 

    return line, 

ani = animation.FuncAnimation(fig, run, data_gen, blit=False, interval=10, 
          repeat=False, init_func=init) 
plt.show() 

Я запускать различные примеры анимации в обоих Анаконда 2 (питон 2.7) & 3 (питона 3,5), и оба дают мне пустой участок без анимации. Тем не менее, каждая анимация прекрасно работает в Enthought Canopy.

Есть ли что-то простое, если я не использую spyder?

ответ

9

Чтобы запустить анимацию в консоли IPython, вам необходимо изменить бэкэнд. Вы можете сделать это, выполнив команду %matplotlib qt перед анимацией.

Если Вы не хотите использовать эту команду каждый раз, вы можете пойти: Tools > Preferences > IPython Console > Graphics > Backend и изменить его от "Inline" к "Automatic".

Обновление: февраль 2018, теперь это в python> Предпочтения В окне выберите консоль IPython в панели LH окна. Выберите вкладку «Графика» и там находится бэкэнд.

Подробнее читайте this.

+1

Отлично, спасибо! Я буду голосовать, как только у меня хватит репутации. – Medalgardr

+0

'% matplotlib qt5' работал для меня. – cjorssen

Смежные вопросы