사용하는 seaborn 기능에 따라 약간 다릅니다.
seaborn의 플로팅 기능은 크게 두 가지 클래스로 나뉩니다.
- "축 수준"기능을 포함
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 수준의 함수는에 그려 질 뿐이며 Axes
그렇지 않으면 그림과 엉망이되지 않으므로 객체 지향 matplotlib 스크립트에서 완벽하게 공존 할 수 있습니다.
두 번째 기능 그룹 (그림 수준)은 결과 플롯이 항상 "의미있는"방식으로 구성된 여러 축을 포함 할 수 있다는 사실로 구별됩니다. 즉, 함수는 그림을 완전히 제어 할 수 있어야하므로 그림을 그릴 수 없습니다.lmplot
이미 존재 합니다. 함수를 호출하면 항상 Figure를 초기화하고 그리는 특정 플롯에 맞게 설정합니다.
그러나을 호출 lmplot
하면 유형의 객체가 반환됩니다 FacetGrid
. 이 객체에는 플롯의 구조에 대해 약간 알고있는 결과 플롯에서 작동하는 몇 가지 메서드가 있습니다. 또한 FacetGrid.fig
및 FacetGrid.axes
인수 에서 기본 그림과 축 배열을 노출합니다 . 이 jointplot
기능은 매우 유사하지만 JointGrid
객체를 사용 합니다. 따라서 객체 지향 컨텍스트에서 이러한 함수를 계속 사용할 수 있지만 모든 사용자 정의는 함수를 호출 한 후에 이루어져야합니다.