자신에게 친절할 것 :)

Data Science/Visualization

[Seaborn] 스타일 설정하기, 폰트 설정하기, 그래프 크기 조절하기

Tashapark 2024. 6. 12. 17:06
728x90

# 코드잇 데이터 사이언스 강의 듣는 중


- seaborn이랑 그냥 plot이랑 왔다갔다 하다보면 다소 헷갈린다.

- 틀릴 수도 있는데 일단 우선 내가 해보면서 느낀 것은 다음과 같다. 

seaborn matplotlib 기반 pandas plot
- sns.00plot(data =, x='', y='')

- sns를 객체로 가져오고,
- 플롯 종류를  메소드로 써주고 데이터 프레임을 파라미터로 받음

+ catplot으로 여러 가지 열을 합쳐서 보고 싶은 경우에는 kind= 를 파라미터로 넣어서 어떤 그래프로 그릴 것인지 입력해줘야 함. 

++ 다만 파라미터가 1개일 경우에는 같은 듯.. 사실 두 방법 다 될 때도 있어서.. 어쩌잔건지 머리아픔. 

예, sns.kdeplot(df['registered'], bw=0.1)
== sns.kdeplot(data=df, x='registered', bw_method=0.1)
df.plot(kind  ='', x ='', y='')

-  
플롯 종류를 kind로 파라미터에 넣어주고, 
- 객체로 데이터 프레임을 가지고 옴. 
- x와 y값은 플롯에 따라서 필요할 때마다 넣어주면 됨. 

 

- 기본적인 barplot

sns.barplot(data=df, x='month', y='total')

 

- 기존적으로 erorrbar가 추가되어서 나타남. 

- 원래 df의 로우가 일별로 1년치임 365일인데, 

month 벡터로 구분되어 있었고, x의 파라미터로 month를 넘겼기 때문에 이렇게 그려짐. 

 

 

 

 


<스타일 설정하기>

- .set_theme() --> 주제에 맞춰서 그래프를 꾸며줌. 

- 다시 흰 배경으로 돌려주고 싶으면 style= 'white' 넣어주면 됨. 

- style= 'dark' 는  배경이 가로 선 없는 회색바탕

- style= 'whitegrid' 는  배경이 가로 줄 있는 흰색바탕

 

--> 개인적으로 얘가 좋음

--> 읽기가 편한 느낌임. 

 

 

 

 

- style= 'ticks' 는  흰색 바탕 그래프에 x축과 y축 눈금

 

- errorbar = None --> 에러바 사라짐. 

sns.set_theme()
sns.barplot(data=df, x='month', y='total', errorbar=None)

 

--> 스타일 지정 안하면,

뒷 배경이 회색이되고 로우에 맞춰서 흰색 가로선이 나눠짐(디폴트가 darkgrid)

 

 

 

 

 


<폰트 설정하기>

- .set_theme() --> 주제에 맞춰서 그래프를 꾸며줌. 

- seaborn에 한글 폰트가 없기 때문에 지정해줘야 함.

# Windows
set_theme(style='white', font='Malgun Gothic')

# Mac
set_theme(style='white', font='AppleGothic')

 

+ 맥도 맑은고딕 입력해도 가능한데 애플고딕이랑 차이를 느낄 수 없었음.

- 폰트 크기 조정font_scale=  을 바꿔주면 됨. (디폴트가 1임)  

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='whitegrid', font_scale=1.5)
sns.lineplot(data=df, x='month', y='casual', errorbar=None, hue='workingday')

 

--> 글씨 커짐. 

 

 

 

 

 


<팔레트 설정하기>

- .set_theme() --> 주제에 맞춰서 그래프를 꾸며줌. 

- 팔레트 처럼 지정된 색깔들이 나옴

sns.barplot(data=df, x='month', y='total', palette='pastel')

 

--> pastel 너무 귀여움 

--> muted, bright, dark, colorblind 등

--> 디폴트 값은 deep임

 

 

 

 


<그래프 크기 조절하기> 

- sns.set_theme(rc = {'figure.figsize' : (가로, 세로)}) -->  인치를 기준으로 조절할 수 있음. 

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='white')
sns.barplot(data=df, x='month', y='total', errorbar=None)

 

--> rc 파라미터에 딕셔너리를 넘기면 되는 데 키는 figure.figsize고 밸류 값에 가로, 세로 길이를 순서대로 넣으면 됨. 

 

 

 

 

 


<이산형 변수 표현 가능>

- hue로 이산형 discrete 변수들을 간단하게 볼 수 있음. 

- .plot()의 매개 변수로 hue=''를 넣어주면 됨 

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='white')
sns.barplot(data=df, x='month', y='total', errorbar=None, hue='workingday')

 

- 이산 변수인 working day를 한눈에 볼 수 있게 비교해줌. 

--> 해석도 해보면 이건 전체에서 평일과 주말에 자전거를 타는 것을 의미함. 

--> 5-6월, 9-10월에 날이 좋을 때만 거의 주말에 자전거를 더 많이 탐. 

 

--> y값을 바꾸면?

 

 

 

- 자전거 대여를 가입해서 타는 사람들을 기준으로 보면

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='white')
sns.barplot(data=df, x='month', y='registered', errorbar=None, hue='workingday')

 

 

--> working day에 훨씬 많이 탐. 

 

 

 

 

 

 

- 자전거를 필요할 때만 타는 사람 기준으로는, 

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='white')
sns.barplot(data=df, x='month', y='casual', errorbar=None, hue='workingday')

 

---> 주말에 훨씬 많이 탐. 

 

--> 이렇게 데이터를 비교하면서 보기 좋음.

 

 

 

 

- 똑같은 경우를 line plot으로만 바꿔서 볼 수도 있음. 

sns.set_theme(rc={'figure.figsize': (8, 4)}, style='white')
sns.lineplot(data=df, x='month', y='casual', errorbar=None, hue='workingday')

 

--> 이게 더 극명하긴함.

- 고점을 이어서 만들기 때문

728x90
반응형