python - Mac OSX - يحتوي الكائن AttributeError: 'FigureCanvasMac' على أي سمة 'restore_region'




2 Answers

فقط اضبط

blit=False

عندما يتم استدعاء animation.FuncAnimation() وأنها ستعمل.

على سبيل المثال ( من double_pendulum_animated ):

ani = animation.FuncAnimation(fig, animate, np.arange(1, len(y)), interval=25, blit=False, init_func=init)

من خلال المشي في مثال الرسوم المتحركة لـ matplotlib على جهاز Mac OSX - http://matplotlib.org/examples/animation/simple_anim.html - أتلقى هذا الخطأ: -

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/animation.py", line 248, in _blit_clear
    a.figure.canvas.restore_region(bg_cache[a])
AttributeError: 'FigureCanvasMac' object has no attribute 'restore_region'

هل يعرف أي شخص صادف ذلك من قبل كيفية حل هذه المشكلة؟

يبدو أنها قضية معروفة (وغير محلولة في هذا الوقت من الكتابة) - https://github.com/matplotlib/matplotlib/issues/531




كما هو موضح في https://mail.python.org/pipermail/pythonmac-sig/2012-September/023664.html استخدم:

import matplotlib
matplotlib.use('TkAgg')

#just *before*

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

وقد عمل هذا بالنسبة لي مع Tkinter مثبتة باستخدام تثبيت ActiveState Tkinter على OSX 10.11.6 ، Python 2.71 المثال الرسوم المتحركة الأساسي لا يزال صاخبة قليلاً حتى blt = خطأ في رمز line_ani هنا:

line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
interval=50, blit=False)



Related