Findobj演示
递归查找符合某些条件的所有对象

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.text as texta = np.arange(0, 3, .02)b = np.arange(0, 3, .02)c = np.exp(a)d = c[::-1]fig, ax = plt.subplots()plt.plot(a, c, 'k--', a, d, 'k:', a, c + d, 'k')plt.legend(('Model length', 'Data length', 'Total message length'),loc='upper center', shadow=True)plt.ylim([-1, 20])plt.grid(False)plt.xlabel('Model complexity --->')plt.ylabel('Message length --->')plt.title('Minimum Message Length')# match on arbitrary functiondef myfunc(x):return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor')for o in fig.findobj(myfunc):o.set_color('blue')# match on class instancesfor o in fig.findobj(text.Text):o.set_fontstyle('italic')plt.show()
