Matplotlib은 파이썬에서 그래프와 차트 등의 시각화 자료를 그리는 것을 쉽게 할 수 있도록 도와주는 라이브러리입니다. Matplotlib 설치방법과 Line Plot, Bar Plot, Scatter Plot, Histogram, Pie Chart, Area Chart 그리는 방법을 코드와 함께 알아보겠습니다.
Matplotlib 설치하기
Matplotlib을 설치하지 않으신 분들은 커맨드 창에서 아래 pip 커맨드로 matplotlib을 설치하실 수 있습니다.
pip install matplotlib
아나콘다나 구글코랩을 사용하시는 경우는 사전에 이미 설치되어있으므로 바로 사용하실 수 있습니다.
설치되었는지 확인은 다음 코드를 실행해서 Matplotlib의 버젼을 확인해 봄으로써 할 수 있습니다.
import matplotlib
print(matplotlib.__version__)
Matplotlib 시작하기
Plot 종류별로 그려보기
Matplotlib은 다양한 종류의 Plot(그래프, 차트) 시각화를 지원합니다. 이 포스팅에서는 다음 종류의 그래프(차트) 그리는 방법에 대해서 알아보겠습니다.
- line plot
- scatter plot
- bar plot
- histogram
- pie chart
- area plot
Line Graph
matplotlib에 간단한 그래프를 그려보겠습니다. 아래 코드는 pyplot모듈을 이용하여 [0,10] 사이에 sine 함수를 그려보는 코드입니다. plt.plot() 함수는 x축과 y축값을 argument로 받아 그래프를 그립니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
Matplotlib은 사용자가 색깔이나, 라인 스타일, 마커 스타일 등을 바꿀 수 있도록 지원합니다. 다음 코드는 위에서 그려본 코드를 색상, 선스타일, 마커 등을 바꿔보는 예시입니다.
plt.plot(x, y, color='red', linestyle='dashed', marker='o', label='sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Sine function')
plt.legend()
plt.show()
Scatter Plot(산점도) 그리기
Scatter Plot(산점도)는 두개 이상 변수의 분산도를 보기 위한 차트입니다. plt.scatter() 함수를 이용해 기본적인 Scatter Plot을 그려볼 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(100)
y = np.random.randn(100)
plt.scatter(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Scatter plot')
plt.show()
위의 코드는 다음과 같은 Scatter Plot을 그립니다.
Bar Plot(Bar 그래프)
Bar plot은 Bar를 이용하여 두개 이상의 변수의 관계를 나타낸 그래프입니다. plt.bar() 함수를 이용하여 바 그래프를 그려볼 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['A', 'B', 'C', 'D', 'E'])
y = np.random.randint(1, 10, size=5)
plt.bar(x, y)
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Bar plot')
plt.show()
위의 코드는 아래와 같은 Bar Plot을 그립니다.
Histogram(히스토그램)
히스토그램은 데이터의 분포를 볼 수 있는 차트입니다. plt.hist()함수를 이용하여 히스토그램을 그려볼 수 있습니다. 다음의 코드는 랜덤한 숫자를 이용하여 히스토그램을 그려보는 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
plt.hist(x, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
위의 코드는 아래의 히스토그램을 그려냅니다.
Pie Chart(파이차트)
파이차트는 데이터의 구성비율을 효과적으로 그려낼 수 있는 그래프입니다. plt.pie()함수를 이용하여 그릴 수 있습니다. 다음 코드는 랜덤한 숫자를 이용해 파이차트를 그려보는 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
labels = ['A', 'B', 'C', 'D', 'E']
sizes = np.random.randint(1, 10, size=5)
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.axis('equal')
plt.title('Pie chart')
plt.show()
위의 코드는 아래와 같은 파이차트를 그려냅니다.
Area Plot (면적 그래프)
Area Plot은 선과 선이 이어져 면적을 이루는 부분을 표시하기 위한 그래프로 fill_between() 함수를 이용해 색상을 채워 표현할 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.fill_between(x, y1, y2, color='blue', alpha=0.2)
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='red')
plt.title('Area Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
위의 코드는 아래와 같은 Area Plot을 그려냅니다.
그래프 이미지 파일로 저장하기
Matplotlib은 그래프, 차트 그려진 것을 이미지 파일로 다운로드할 수 있도록 지원합니다. 다음 코드를 이용하여 PNG형태의 이미지로 저장할 수 있습니다. Matplotlib은 PNG 뿐만 아니라 PDF, SVG 등 다양한 확장자 파일을 지원합니다.
plt.plot(x, y, color='red', linestyle='dashed', marker='o', label='sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Sine function')
plt.legend()
plt.savefig('plot.png')
Summary
Matplotlib을 활용하면 데이터 분석을 시각화(Visualization)함으로써 분석 효과를 더욱 극대화할 수 있습니다. 이번 포스팅에서 다루었던 Line Plot, Bar Plot, Histogram, Scatter Plot, Pie Chart, Area Plot만 이용해도 정말 다양한 종류의 그래프를 그릴 수 있습니다. 위의 예제들을 활용하여 사용방법이 정말 간편한 Matplotlib을 적극 이용하는 것을 추천드립니다.
<참고하면 좋은 포스팅>
'파이썬 독학' 카테고리의 다른 글
파이썬 Seaborn 마스터 하기 (0) | 2023.02.20 |
---|---|
파이썬 넘파이 Numpy 사용법 가이드 (0) | 2023.02.20 |
파이썬 판다스 EDA하는 방법 : 데이터 분석 A to Z (0) | 2023.02.16 |
파이썬으로 웹스크래핑 크롤링 하는 방법 (BeautifulSoup 사용) (0) | 2023.02.15 |
코딩 실력 향상을 위해 LeetCode 리트코드 하세요. (0) | 2023.02.08 |
댓글