
데이터 분석을 하면서 시각화하는 작업은 필수다. 숫자로 된 데이터를 보는 것보다 시각화를 해야 확실하게 체감이 된다. 그래서 시각화를 할 때 사용한 matplotlib 라이브러리에 대해 기록하고 이해하려 한다.
matplotlib 라이브러리란?
파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리
1. 다양한 그래프 지원: matplotlib은 막대 그래프, 선 그래프, 산점도, 히스토그램, 파이 차트 등 다양한 종류의 그래프와 차트를 생성 가능.
2. 커스터마이징: 그래프의 제목, 레이블, 색상, 크기, 축 범위 등을 사용자가 원하는 대로 맞춤 설정 가능.
3. 다중 플롯 지원: 하나의 창(window)에 여러 개의 그래프를 그릴 수 있으며, 서브플롯(subplot)을 사용하여 복잡한 레이아웃을 구성 가능.
이것 이외에도 다양한 특징이 존재하지만, 주로 3가지의 특징을 가장 많이 사용한다.
import matplotlib.pyplot as plt
survival_by_gender = train_data.groupby('Sex')['Survived'].mean()
survival_by_gender.plot(kind='bar')
plt.title('Survival Rate by Gender')
plt.show()
이렇게 하면 '성별에 따른 생존율'을 시각화하여 막대 그래프로 나타낼 수 있다. 하나씩 살펴보면, 우선 survival_by_gender로 성별에 따른 생존율의 평균을 구한다. 그러면 survival_by_gender에 값이 Series 객체로
Sex
female 0.742038
male 0.188908
이렇게 저장이 된다. 그런 다음 plot() 메소드를 통해서 그래프를 그린다. survival_by_gender.plot()를 터미널에 출력을 하면
Axes(0.125,0.11;0.775x0.77)
이런 식으로 저장이 된다. 여기서 matplotlib 라이브러리가 작동한다. matplotlib 라이브러리는 백엔드 시스템이 있어서 이를 활용해서 plot에 저장된 값으로 그래프를 그린다.
그래프를 그리기 위해 내부적으로 "백엔드(backend)" 시스템을 사용한다. 백엔드 시스템은 matplotlib이 그래프를 어떻게 처리하고 표시할지 결정한다. 이 백엔드에는 다음 두 부분이 포함된다.
Figure Canvas: 그래프가 그려지는 영역.
Renderer: 실제로 그래프를 그리는 부분.
matplotlib은 이러한 백엔드를 통해 그래프를 생성하고, 이 그래프는 현재 활성화된 Figure 객체에 저장된다. plt.show()를 호출하면 matplotlib은 활성화된 Figure 객체들을 찾아 그래프를 화면에 표시합니다.
pandas의 plot() 메소드는 내부적으로 matplotlib를 사용하여 그래프를 생성한다. 즉, plot() 메소드를 호출할 때, pandas는 matplotlib의 그래프 생성 API를 사용하여 그래프를 그리고 이 그래프는 자동적으로 현재 활성화된 Figure 객체에 추가된다.
그래서 survival_by_gender.plot(kind='bar')을 호출하면, pandas는 내부적으로 matplotlib의 막대 그래프 생성 함수를 호출한다. 이 함수는 그래프를 생성하고, 이를 현재 활성화된 Figure 객체에 추가 => plt.show()를 호출하면, matplotlib는 이 Figure 객체를 찾아 그 안에 저장된 그래프를 화면에 표시한다.