머신러닝 및 딥러닝/Python

[파이썬/matplotlib] 선 그래프 그리기 + 테마 (스타일 시트) 설정

밴B 2021. 9. 27. 15:15
728x90
반응형

 



선 그래프는 수량을 점으로 표시하고 점과 점 사이의 거리를 직선으로 연결한 그래프 형태이며 시간에 따른 데이터의 변화 추세를 파악하는데 유용합니다.

이 글에서는 파이썬의 대표 데이터 시각화 라이브러리 matplotlib을 사용하여 선 그래프를 그리는 법을 정리해봤습니다.


matplotlib 불러오기

%matplotlib inline 
import matplotlib.pyplot as plt

첫 번째 줄 %matplotlib inline은 Jupyter에서 IPython을 쓰는 경우 노트북에서 바로 차트를 볼 수 있게 해주는 코드입니다.
matplotlib.pyplot을 불러줍니다. (약자: plt)



선그래프 그리기

리스트, 배열 형식의 데이터가 있다면 바로 pyplot의 plot() 함수에 x축, y축 순서로 넣어주면 됩니다.

x = [1, 2, 3, 4] 
y = [2, 4, 6, 8] 
plt.plot(x, y)

 

y = 2x 선 그래프

 

그래프 제목과 축 이름 추가하기


아래와 같이 제목 (title), x축 이름 (xlabel), y축 이름 (ylabel) 함수에 문자열을 넣어 제목과 축 이름을 표시할 수 있습니다.

x = [1, 2, 3, 4] 
y = [2, 4, 6, 8] 
plt.plot(x, y) 
plt.title('y=2x') 
plt.xlabel("x") 
plt.ylabel("y")

제목과 축이름 표시하기

 

 

 

 

 

여러 개의 선 겹쳐 그리기

선 그래프를 겹쳐 그리고 싶을 경우 (같은 x축에 다른 y 데이터) plt.plot() 함수를 연속으로 출력해주면 됩니다.

아래는 같은 연도 year (1985~2013년) 간 한국 자살률과 뉴질랜드의 자살률을 비교한 선 그래프입니다.
year는 1985년부터 2013년 숫자를 저장하고 있는 배열이고 suicides_kr, suicides_nz는 각각 한국, 뉴질랜드의 인구수 100,000명당 자살자 수를 담고 있는 배열입니다.

(데이터 출처: 캐글)

 

plt.plot(year, suicides_kr) 
plt.plot(year, suicides_nz)

두 개의 선 그래프


범례 legend 추가
여러 개의 선을 그릴 경우, 어떤 선이 무엇을 뜻하는지 표시하기 위한 범례 legend를 추가해줍니다.
plt.plot() 함수에 label 파라미터를 사용하여 원하는 레이블을 정해줍니다.
그리고 plt.legend() 함수를 추가하여 범례를 그래프에 추가해줍니다.

plt.plot(year, suicides_kr, label="Korea") 
plt.plot(year, suicides_nz, label="NZ") 
plt.legend()

 

범례 legend를 추가한 그래프



선 그래프 ◈𝅒 𝅓 𝅒 𝅓 𝅒 𝅓미 𝅒 𝅓기 𝅒 𝅓 𝅒 𝅓 ◈



선 색깔 바꾸기

plt.plot() 함수에 color 파라미터를 사용하여 색깔을 바꿀 수 있습니다.
matplotlib에서 사용 가능한 색 이름은 여기서 확인할 수 있습니다.
또는 0에서 1 스케일을 사용한 RGB 튜플이나, HEX 코드를 사용하거나, HTML에서 사용하는 색이름도 입력 가능합니다.

plt.plot(year, kr_s, label = "KR", color="green") #이름으로 색 바꾸기 
plt.plot(year, nz_s, label = "NZ", color = "hotpink") 

plt.plot(year, usa_s, label = "USA", color = (1, 0.8, 0)) #RGB 튜플 (0과 1 사이의 숫자) 
plt.plot(year, jpn_s, label = "JPN", color = "#AA393F") #Hex 코드 사용 
plt.plot(year, fr_s, label = "FR", color = "CornflowerBlue") #HTML 색 이름 

plt.legend()



선 모양 바꾸기

선 모양과 마커 marker도 plot() 함수를 사용하여 바꿔줄 수 있습니다.

x = np.asarray([1, 2, 3, 4]) 
plt.plot(x, x+0, linestyle="--") 
plt.plot(x, x+1, linestyle="-.") 
plt.plot(x, x+2, linestyle=":") 
plt.plot(x, x+3, linestyle="-")

선 모양

 

x = np.asarray([1, 2, 3, 4]) 
plt.plot(x, x+0, "-v") 
plt.plot(x, x+1, "o--") 
plt.plot(x, x+2, "+-.") 
plt.plot(x, x+3, "*--") 
plt.plot(x, x+4, "D:")

다양한 마커


더 많은 마커는 matplotlib documentation에서 확인할 수 있습니다.


matplotlib 스타일 설정하기


matplotlib에서는 plt.style을 사용하여 시각화 차트의 테마를 설정할 수 있습니다.

matplotlib 디폴트 테마

 

plt.style.available

['Solarize_Light2','_classic_test_patch','bmh','classic','dark_background','fast','fivethirtyeight','ggplot','grayscale','seaborn','seaborn-bright','seaborn-colorblind','seaborn-dark','seaborn-dark-palette','seaborn-darkgrid','seaborn-deep','seaborn-muted','seaborn-notebook','seaborn-paper','seaborn-pastel','seaborn-poster','seaborn-talk','seaborn-ticks','seaborn-white','seaborn-whitegrid','tableau-colorblind10']

matplotlib에는 총 26개의 스타일이 있습니다. (matplotlib 웹사이트에서 적용된 모습을 볼 수 있습니다)

seaborn 테마


테마 적용은 아래와 같이 코드를 실행해주면 됩니다.

plt.style.use('seaborn-talk')

 


 

728x90
반응형