일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SQL
- Plotly
- folium
- GIS
- 멋쟁이사자처럼
- pyhton
- likelion
- 그리디
- 시각화
- 마이온컴퍼니
- TiL
- parklab
- ux·ui디자인
- GNN
- 멋쟁이사자처럼멋쟁이사자처럼
- 프로젝트
- 알고리즘
- DFS
- 마이온
- seaborn
- 멋재이사자처럼
- DP
- 파이썬
- Join
- 인턴10
- intern10
- 멋사
- likelionlikelion
- Python
- BFS
- Today
- Total
지금은마라톤중
Seaborn Tutorial (6)_Figure-level vs. axes-level functions 본문
Seaborn Tutorial (6)_Figure-level vs. axes-level functions
달리는중 2023. 3. 13. 20:42시본 함수는 축 중심과 도표 중심의 함수로 나눌 수 있다.
축 중심 그래프는 matplotlib.pyplot.Axes 를 통해 표현하고, 그림 중심 그래프는 FaceGrid 통해 matplotlib와 인터페이스한다.
예를들어 displot()은 분포 모듈의 그림 중심 함수이다. 그 중 histplot()이 있다.
sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
# 커널 밀도 그래프로 그리릴면, 같은 코드에서 kind 파라미더를 "kde"로 지정하면 된다.
sns.displot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack", kind="kde")
그림 중심의 플롯은 대부분 축 중심 플롯과 비슷해 보이지만, 몇 가지 차이점이 있다.
그림 수준 함수가 제공하는 가장 융용한 기능은 여러 하위 플롯으로 그림을 쉽게 만드는 것이다 .
예를들어 평귄의 각 종에 대한 세가지 분포를 같은 축에 쌓는 대신, 열로 각각 나열하여 그릴 수 있다.
sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="species")
그림 중심 함수는 축 중심에 대응하여 히스토그램의 bin 크기 같은 아규먼트를 기본으로 제공한다.
이것은 그림 중심 함수가 덜 유연하지 않다는 것이다, 그러나 함수 sigature나 docstring에 써있는 않다는 것은 단점이다.
축 수준의 함수는 독립적인 플롯을 만든다
축 수준 함수는 matplotlib 함수의 드롭인 대체물처럼 작동하도록 작성되었다.
그들이 자동으로 축 라벨과 범례를 추가하는 동안, 그들이 그려진 축을 넘어서는 아무것도 수정하지 않는다.
그것은 그들이 예측 가능한 결과를 가진 임의로 복잡한 matplotlib 수치로 구성될 수 있다는 것을 의미한다.
축 레벨 함수 호출matplotlib.pyplot.gca() 내부적으로 matplotlib 상태-머신 인터페이스에 연결하여 "현재 활성" 축에 플롯을 그립니다.
하지만 그들은 또한 객체 지향 인터페이스와 통합되고 각 플롯이 어디로 가야 하는지 정확히 지정할 수 있는 ax= 인수를 받아들인다.
f, axs = plt.subplots(1, 2, figsize=(8, 4), gridspec_kw=dict(width_ratios=[4, 3]))
sns.scatterplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species", ax=axs[0])
sns.histplot(data=penguins, x="species", hue="species", shrink=.8, alpha=.8, legend=False, ax=axs[1])
f.tight_layout()
그림 수준의 함수는 그들의 그림을 소유한다.
대조적으로, 그림 수준의 함수는 다른 플롯으로 (쉽게) 구성될 수 없다.
설계상, 그들은 초기화를 포함하여 자신의 그림을 "소유"하므로, 그림 수준의 함수를 사용하여 기존 축에 플롯을 그리는 개념이 없다.
이 제약은 그림 수준의 함수가 범례를 플롯 외부에 두는 것과 같은 기능을 구현할 수 있게 해준다.
그럼에도 불구하고, 그들이 반환하는 객체의 matplotlib 축에 액세스하고 그런 식으로 플롯에 다른 요소를 추가하여 그림 수준 함수가 제공하는 것을 넘어설 수 있습니다.
tips = sns.load_dataset("tips")
g = sns.relplot(data=tips, x="total_bill", y="tip")
g.ax.axline(xy1=(10, 2), slope=.2, color="b", dashes=(5, 2))
그림 레벨 함수에서 플롯 사용자 지정
그림 수준의 함수는 a를 반환한다FacetGrid 예를 들어, 하위 플롯 조직에 대해 "똑똑한" 방식으로 플롯의 속성을 사용자 정의하는 몇 가지 방법이 있습니다.
예를 들어, 한 줄의 코드를 사용하여 외부 축의 라벨을 변경할 수 있습니다:
g = sns.relplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", col="sex")
g.set_axis_labels("Flipper length (mm)", "Bill length (mm)")
그림 크기 지정하기
Matplotlib 플롯의 크기를 늘리거나 줄이려면 전역 rcParams에서 전체 그림의 너비와 높이를 설정하면서 플롯을 설정합니다(예: matplotlib.pyplot.subplots()의 figsize 매개 변수),
또는 그림 객체에서 메서드 호출(예: matplotlib.Figure.set_size_inches()
그림 수준의 기능을 사용할 때, 몇 가지 주요 차이점이 있다.
첫째, 함수 자체는 그림 크기를 제어하는 매개 변수 가지고 있다 (비록 이것들은 실제로 기본 매개 변수이지만)그림을 관리하는 FacetGrid).
둘째, 이러한 매개 변수, 높이 및 측면은 matplotlib의 너비, 높이 매개 변수화와 약간 다르게 크기를 매개 변수화합니다(바다에서 태어난 매개 변수 사용, 너비 = 높이 * 측면).
가장 중요한 것은, 매개 변수가 전체 그림의 크기가 아니라 각 하위 플롯의 크기에 해당한다는 것이다.
이러한 접근 방식의 차이점을 설명하기 위해, 여기에 하나의 하위 플롯이 있는 matplotlib.pyplot.subplots()의 기본 출력이 있습니다.
f, ax = plt.subplots()
f, ax = plt.subplots(1, 2, sharey=True)
# 대조적으로, 그림 수준의 함수에 의해 생성된 플롯은 정사각형이 될 것이다.
# 그것을 증명하기 위해, 사용하여 빈 플롯을 설정합시다.FacetGrid직접.
# 이것은 다음과 같은 기능의 무대 뒤에서 일어난다.relplot(),displot(), 또는catplot():
g = sns.FacetGrid(penguins)
g = sns.FacetGrid(penguins, col="sex")
g = sns.FacetGrid(penguins, col="sex", height=3.5, aspect=.75)
수치 수준의 함수의 상대적인 장점
다음은 우리가 위에서 논의한 장단점에 대한 요약입니다:
균형적으로, 그림 수준의 기능은 초보자를 더 혼란스럽게 만들 수 있는 추가적인 복잡성을 추가하지만, 그들의 뚜렷한 기능은 그들에게 추가적인 힘을 준다.
튜토리얼 문서는 약간 더 깨끗한 플롯을 생성하기 때문에 대부분 그림 수준의 기능을 사용하며,
일반적으로 대부분의 응용 프로그램에 사용하는 것이 좋습니다.
그들이 좋은 선택이 아닌 한 가지 상황은 여러 가지 다른 플롯 종류를 구성하는 복잡하고 독립적인 그림을 만들어야 할 때이다.
이 시점에서, matplotlib을 직접 사용하여 그림을 설정하고 축 수준 함수를 사용하여 개별 구성 요소를 채우는 것이 좋습니다.
'STUDY > seaborn Tutorial' 카테고리의 다른 글
Seaborn Tutorial (5)_Similar functions for similar tasks (0) | 2023.03.01 |
---|---|
Seaborn Tutorial (4)_Opinionated defaults and flexible customization (0) | 2023.02.19 |
Seaborn Tutorial (3)_Multivariate views on complex datasets (0) | 2023.02.09 |
Seaborn Tutorial (2)_A high-level API for statistical graphics (0) | 2023.02.07 |
Seaborn Tutorial (1)_An introduction to seaborn (1) | 2023.02.07 |