этот вопрос отличается от этого поста , в котором обсуждаются другие способы установки сетки, а не использование pyplot.setp ().
matplotlib.pyplot.setp () можно использовать для установки некоторых свойств для всех подзаговоров.
этот кусок кода
xlim = (-2,2)
ylim = (-2,2)
f, axs = plt.subplots(2, 2)
a = plt.setp(axs, xlim=xlim, ylim=ylim)
plt.show()
устанавливает ограничения как (-2,2) для всех участков.
AxesSubplot.grid может использоваться для установки линий сетки
f, axs = plt.subplots(2, 2)
axs[0,0].grid(True)
plt.show()
Я пытаюсь установить линии сетки с помощью pyplot.setp ().
f, axs = plt.subplots(2, 2)
plt.setp(axs, grid=True)
plt.show()
получите эту ошибку
--------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-10-5014b2a61ed3> in <module>()
1 f, axs = plt.subplots(2, 2)
----> 2 plt.setp(axs, grid=True)
3 plt.show()
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/pyplot.py in setp(obj, *args, **kwargs)
340 @docstring.copy(_setp)
341 def setp(obj, *args, **kwargs):
--> 342 return _setp(obj, *args, **kwargs)
343
344
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in setp(obj, *args, **kwargs)
1505 # put args into ordereddict to maintain order
1506 funcvals = OrderedDict((k, v) for k, v in zip(args[::2], args[1::2]))
-> 1507 ret = [o.update(funcvals) for o in objs] + [o.set(**kwargs) for o in objs]
1508 return list(cbook.flatten(ret))
1509
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in <listcomp>(.0)
1505 # put args into ordereddict to maintain order
1506 funcvals = OrderedDict((k, v) for k, v in zip(args[::2], args[1::2]))
-> 1507 ret = [o.update(funcvals) for o in objs] + [o.set(**kwargs) for o in objs]
1508 return list(cbook.flatten(ret))
1509
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in set(self, **kwargs)
1013 key=lambda x: (self._prop_order.get(x[0], 0), x[0])))
1014
-> 1015 return self.update(props)
1016
1017 def findobj(self, match=None, include_self=True):
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in update(self, props)
914
915 with cbook._setattr_cm(self, eventson=False):
--> 916 ret = [_update_property(self, k, v) for k, v in props.items()]
917
918 if len(ret):
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in <listcomp>(.0)
914
915 with cbook._setattr_cm(self, eventson=False):
--> 916 ret = [_update_property(self, k, v) for k, v in props.items()]
917
918 if len(ret):
~/anaconda3/envs/tf11/lib/python3.6/site-packages/matplotlib/artist.py in _update_property(self, k, v)
910 func = getattr(self, 'set_' + k, None)
911 if not callable(func):
--> 912 raise AttributeError('Unknown property %s' % k)
913 return func(v)
914
AttributeError: Unknown property grid
Я прошу объяснить, почему этот код вызывает ошибку, а не решение для установки сетки для всех подзаговоров.