Rationale
파이썬으로 그림을 그리다 보면, 주로 seaborn, pyplot 을 쓰게 되는데,
뭔가 그림을 조율하고 나면 한번씩 깔끔하지 못하게 보이는 느낌이 있다.
특히 리포트가 나가야 하는 그림일 때, 특히 그 간결성이 강조된다고 생각하는데, 그럴 때 쓸 수 있는 몇가지 트릭이 있다.
내가 쓰는 트릭 중 하나를 소개한다.
<3줄> 만 추가하면 그림이 조금 깔끔해 지는 코드이다.
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
Seaborn, pyplot 을 이용한 plotting 을 할 때, 나의 그림을 가장 깔끔하게 해주는 마법의 3줄.
plt.tight_layout() # Subplotting 을 할 때 그림이 겹치지 않게 함, 공간 확보
sns.despine() # Grid 의 위쪽, 오른쪽 선을 없에줌.
sns.set(font_scale = 2, style = 'white') # 배경을 흰 색으로, Font 는 scale 따라 자동 조절.
Seaborn histplot 을 예로 들어서 적용시켜보자.
rand1 = np.random.normal(size=100)
rand2 = np.random.normal(size=100)
우선 그림그릴 데이터셋을 준비해주고,
사용하지 않은 상태에서 그림을 그려 보면
적용 전
_,axes = plt.subplots(1,2,figsize = (15,8))
sns.set(font_scale = 2)
sns.histplot(rand1,ax=axes[0])
sns.histplot(rand2,ax=axes[1])
이렇게 나온다.
현재 배경도 default 인 grid 로 되어있고, 글자도 두개 plot 에 겹치는 것으로 보이는데,
이를 더 깔끔하게 해보자.
적용 후
_,axes = plt.subplots(1,2,figsize = (15,8))
### 3줄 추가 ###
plt.tight_layout() # Subplotting 을 할 때 그림이 겹치지 않게 함, 공간 확보
sns.set(font_scale = 2, style = 'white') # 배경을 흰 색으로, Font 는 scale 따라 자동 조절.
sns.despine() # Grid 의 위쪽, 오른쪽 선을 없에줌.
sns.histplot(rand1,ax=axes[0])
sns.histplot(rand2,ax=axes[1])
plt.tight_layout() 으로 두 subplot 간 간격이 일정해지고 서로 부딛히지 않음을 볼 수 있고,
sns.set(style = 'white') 로 배경이 하얀 색으로 바뀌었음을,
sns.despine() 으로 우측 테두리가 수정되었음을 볼 수 있다.
'데이터 > Plotting' 카테고리의 다른 글
[Matplotlib] 한글 폰트 사용하기. (0) | 2023.05.02 |
---|---|
트리 시각화하기 (0) | 2023.03.03 |
이번 주 해볼 것 (0) | 2023.01.05 |
[ML/DL Model visualization] 모델을 시각화해보자. (0) | 2022.12.14 |
[Matplotlib] pdf 저장 시 text 를 수정가능하게 저장하는 방법 (0) | 2022.09.08 |
댓글