Ваша функция вызывает созданные объекты, и у этих объектов есть методы.Вам не нужно импортировать эти методы, так как они прикреплены непосредственно к объекту.Они отличаются от импорта функции тем, что у вас нет прямого доступа к этим методам: доступ к ним возможен только из объекта.
когда вы установите fig = figure()
, вы создали объект.Если вы print(repr(fig))
, то увидите что-то вроде этого.
'<matplotlib.figure.Figure object at 0x000000000784F208>'
, поэтому fig
является Figure
объектом.Этот объект поставляется с некоторыми методами и свойствами, прикрепленными к нему.Вы можете получить список всех методов, используя dir(fig)
(это длинный список, поэтому я не буду его печатать здесь).
fig.subplot(111)
вызывает метод subplot
, прикрепленный к вашему fig
объекту.Возвращает новый объект (AxesSubplot
). К этому объекту прикреплен метод, называемый pcolormesh
.Если вы хотите поиграть с этим объектом, вы можете сделать это.
ax = fig.subplot(111)
ax.pcolormesh(X, Y, Z, cmap = get_cmap('BuPu'))
print(repr(ax))
В дополнение к тому, что вы делаете, это напечатает <matplotlib.axes._subplots.AxesSubplot at 0x8996f28>
.
Я помню, что меня так же смущал matplot.pyplot, когда я только начинал, потому что вы часто можете делать почти идентичные вещи с помощью функции (matplotlib.pyplot.pcolomesh
) и как метода объекта (в приведенном выше примере ax.pcolormesh
).Они упоминают это в объяснении API здесь и здесь .