Це трохи залежить від того, яку функцію уроджених ви використовуєте.
Структурні функції у новонароджених широко поділяються на два класи
- Функції «Сокири рівня», в тому числі
regplot
, boxplot
, kdeplot
і багато інших
- Функції «Малюнок на рівні», в тому числі
lmplot
, factorplot
, jointplot
і один або два інших
Перша група ідентифікується, беручи явний ax
аргумент і повертаючи Axes
об’єкт. Як це підказує, ви можете використовувати їх у "об'єктно-орієнтованому" стилі, передаючи свій Axes
:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
Функції на рівні осей будуть малюватися лише на Axes
фігурі, і в іншому випадку не будуть возитися з фігурою, тому вони можуть спільно існувати в об'єктно-орієнтованому сценарії matplotlib.
Друга група функцій (Рисунок-рівень) відрізняється тим, що отриманий сюжет потенційно може включати кілька Осей, які завжди організовані "змістовно". Це означає, що функції повинні мати повний контроль над фігурою, тому неможливо побудувати, скажімо, такий, lmplot
який вже існує. Виклик функції завжди ініціалізує фігуру і встановлює її для конкретного сюжету, який вона малює.
Однак, як тільки ви зателефонували lmplot
, він поверне об’єкт типу FacetGrid
. Цей об'єкт має деякі методи роботи над отриманим сюжетом, які трохи знають про структуру ділянки. Він також розкриває основну фігуру та масив осей на аргументах FacetGrid.fig
та FacetGrid.axes
. jointplot
Функція дуже схожа, але вона використовує JointGrid
об'єкт. Таким чином, ви все ще можете використовувати ці функції в об'єктно-орієнтованому контексті, але все ваше налаштування має відбутися після того, як ви викликали функцію.