머신러닝과 빅데이터 분석/시각화(Visualization)

Matplotlib

Zoo_10th 2024. 2. 29.

1. 데이터 시각화

1-1. 데이터 시각화란

데이터 분석 결과를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 과정을 말한다. 데이터 시각화의 목적은 도표라는 수단을 사용하여 정보를 명확하고 효과적으로 전달하는 것이다. 데이터 시각화는 데이터를 한눈에 보여주어 데이터의 형태를 통해 새로운 인사이트를 얻고 데이터를 해석할 수 있도록 도와준다.

 - 파이썬의 데이터 시각화

1) Matplotlib

파이썬에서 사용되는 대표적인 시각화 라이브러리는 Numpy를 기반으로 제작된 Matplotlib이다.

2) Seaborn

Matplotlib을 기반으로 하는 Seaborn은 더 많은 그래프와 시각적 효과를 더 높은 수준으로 제공하는 강력한 시각화 라이브러리다.

3) Plotly

Plotly(플로틀리)는 interactive한 표현을 제공하는 파이썬 그래픽 라이브러리다. 이 회사는 캐나다 퀘벡 몬트리올에 본사를 두고 있으며, Plotly라는 이름으로 개발 중이다.

 

1-2. 데이터 시각화가 필요한 이유

데이터를 시각화하지 않고 수치로만 확인하면 잘못된 판단을 하게 될 수 있다. 이러한 오류를 방지하기 위해서는 데이터 시각화가 매우 중요한 작업이다. 앤스콤 4분할 데이터는 대표적인 예시로, 데이터 시각화의 필요성을 확인할 수 있다.

 

2. Matplotlib

2-1. pyplot

pyplot은 Matplotlib의 서브 패키지다. matplotlib의 시각화 명령어를 그대로 사용할 수 있도록 해주는 pyplot은 matlab이라는 수치해석 소프트웨어의 시각화 명령어와 유사하다. pyplot은 간단한 시각화 작업을 하기에 충분한 기능을 제공하며, 대부분의 기본적인 시각화 작업은 pyplot을 활용해 수행된다. matplotlib의 서브 패키지인 pyplot을 사용하기 위해서는 먼저 matplotlib을 불러와야 한다.

import matplotlib.pyplot as plt

1) plot 함수

기본적인 Line형태의 그래프 List, ndarray, Series등의 데이터 사용

plt.plot( 데이터)

2) show 함수

그래프를 화면에 나타나도록 하는 함수

plt.show( )

2-2. Axis, Axes

1) axis 함수

축의 범위를 지정해주는 함수다.

plt.axis( [ xmin , xmax, ymin, ymax ])

2) limit

축의 범위를 지정

plt.xlim( xmin , xmax )

plt.ylim( ymin , ymax )

3) 축 값 지정(ticks)

x축과 y축의 값을 지정하여 사용할 수 있습니다. 지정된 값을 문자로 변환하여 사용할 수도 있다.

plt.xticks( [축에 지정될 값] )

plt.yticks( [축에 지정될 값] )

plt.xticks( [축에 지정될 값] , [변경할 문자열])

plt.yticks( [축에 지정될 값], [변경할 문자열])

4) format string

마커, 선의 종류, 색상 등의 형태를 지정할 수 있다.

 

5) 형태 지정

위에서 사용한 format string 외에도 직접 마커나 선의 형태를 지정하여 사용할 수 있다.

약자 문자열 의미
c color 선의 색
lw linewidth 선의 굵기
ls linestyle 선의 종류
marker marker 마커 종류
ms makersize 마커 크기
mec markeredgecolor 마커 선의 색
mew markeredgewidth 마커 선의 굵기
mfc markerfacecolor 마커 내부 색

6) 여러그래프 한꺼번에 그리기 ( Single Axis)

여러 개의 데이터를 하나의 그래프에 표현하기 위해서는, plot 안에 인자를 구분하여 작성하면 된다.

plt.plot( x, y1, fs1, x, y2, fs2, x, y3, fs3)

plt.plot( x, y1, fs1)

plt.plot( x, y2, fs2)

plt.plot( x, y3, fs3)

7) 여러 그래프 한꺼번에 그리기 ( Multi Axis)

y축을 두 개 사용하는 그래프를 그리기 위해서는 twin_axes소드를 사용한다.

8) 그래프의 title, label 지정

그래프를 출력할 때, 그래프의 제목과 축 레이블을 함께 출력할 수 있다.

plt.title('그래프 제목')

plt.xlabel('X축 제목')

plt.ylabel('Y축 제목')

9) 그래프 영역별 구성 명칭

Figure : 그래프가 그려지는 공간

Axes : 하나의 그래프

Axis : 그래프를 구성하는 X / Y 축

10) 여러개의 Axes 하나의 Plot으로 그리기

plt.subplot( 출력모양(x), 출력모양(y), 현재 plot의 위치)

 

2-3. Legend (범례)

범례 (Legend)는 그래프에 데이터의 종류를 표시하기 위한 텍스트다. matplotlib.pyplot 모듈의 legend() 함수를 사용하여 그래프에 범례를 표시할 수 있다. 각 Axes마다 label을 지정하여 사용하며, 범례의 위치는 자동으로 결정되지만 loc 속성으로 변경이 가능하다.

plt.legend(loc = 숫자 또는 문자열)

 

 

3. 다양한 그래프

3-1. Pie Chart (원 그래프)

- 원형 차트

원 그래프는 데이터를 원 모양의 그래프로 표시하는 그래픽 표현 기법이다. 이 차트는 변수가 적을 때 가장 잘 작동하는 복합 정적 차트다. 원 그래프는 다양한 범주의 조합에 속하는 데이터 요소와 함께 샘플 데이터를 나타내는 데 자주 사용된다. 이러한 각 범주는 "파이 조각"으로 표시된다. 각 조각의 크기는 특정 범주에 속하는 데이터 요소의 수에 정비례한다.

Pie Chart의 가장 효과적인 사용법은 범주형 데이터의 백분율을 나타내는 경우가 가장 효과적이다.

plt.pie( 데이터, labels = 사용할 label, autopct= 숫자형식)

 - 그외 옵션

1) startangle : 시작할 각도 (default : 0)

2) counterclock : 데이터의 순서, 시계방향(False) 또는 시계반대방향(True)

3) explode : 중심에서 벗어난 정도

4) colors : 색상 지정

5) wedgeprops : 부채꼴의 스타일 지정

 

3-2. Histogram (히스토그램 : 도수분포표)

히스토그램은 수학, 특히 통계에서 널리 사용되는 그래프 유형이다. 히스토그램은 특정 값의 범위 내에 있는 특정 현상의 발생 빈도를 나타내며, 이 값은 연속적이고 일정한 간격으로 배열된다. 데이터 발생 빈도는 막대로 표시되므로 막대 그래프와 매우 유사하다. Histogram은 연속된 데이터의 범주를 x축으로 하고 y축을 횟수나 갯수등으로 표시한 그래프이다.

plt.hist( 데이터, bins= 가로축 구간의 개수)

 - 그외 옵션

1) range : bin의 범위

2) cumulative : 데이터의 누적값을 표현한다.

3) histtype : 히스토그램의 종류를 지정 {‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}

4) color : 막대의 색 결정

5) rwidth : 막대의 두께

6) stacked : True일때 다수의 데이터를 겹쳐서 표현할 수 있다.

 

3-3. Bar Chart (막대그래프)

직사각형 막대로 구성된 그래프는 높이와 길이를 가지며, 범주형 데이터를 시각적으로 표현하는 그래프다. 이 그래프를 사용하면 데이터의 크기와 작음을 한눈에 파악할 수 있다. 막대그래프는 범주형 데이터의 크기를 나타내는 그래프로 각 데이터들의 크기를 높이로 표현하여 직관적으로 어떤 데이터가 가장 크고 작은지 나타내주어 쉽게 이해할 수 있는 그래프이다.

plt.bar( x축 데이터, y축 데이터 )

plt.barh( x축 데이터, y축 데이터 )

 - 그외 옵션

1) colors : 막대들의 색을 지정할 수 있다.

2) width : 막대의 폭을 지정할 수 있다.

3) align : 막대의 위치를 조정할 수 있다. ( ‘center’, ‘edge’)

4) height : 수평 막대그래프의 막대의 두께

 

3-4. Scatter (산점도)

산점도(Scatter plot)는 두 변수의 상관 관계를 직교 좌표계 평면 상에 점으로 표현하는 그래프다. 이 도표는 두 변수 X와 Y값이 만나는 지점을 표시한 그림이다. 이 그림을 통해 두 변수 사이의 관계를 파악할 수 있다. Scatter는 두 변수의 (x, y)값을 이용하여 좌표를 표시하고 전체 데이터의 모양을 통해서 특정한 회귀선을 만들어 상관성을 파악할 수 있도록 해주는 그래프이다.

plt.scatter( x데이터, y데이터)

- 그외 옵션

1) s (Size) : 점의 크기를 지정

2) c (Color) : 점의 색상을 지정

3) alpha : 마커의 투명도

4) cmap : 컬러맵 지정

728x90

'머신러닝과 빅데이터 분석 > 시각화(Visualization)' 카테고리의 다른 글

Seaborn  (0) 2024.03.04

댓글