Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드

파이썬은 데이터 시각화를 위해 다양하고 사용하기 쉬운 라이브러리를 제공합니다. 이러한 라이브러리들은 소규모 데이터셋부터 대규모 데이터셋까지 모두 원활하게 처리할 수 있다는 점이 큰 장점입니다.

데이터 시각화에 가장 널리 사용되는 파이썬 라이브러리는 다음과 같습니다.

  • Matplotlib – 가장 기본적이며 폭넓게 활용되는 시각화 라이브러리

  • Pandas – 데이터 분석과 함께 간편한 시각화 기능 제공

  • Plotly – 인터랙티브한 그래프 생성에 특화

  • Seaborn – 통계 기반의 세련된 시각화 지원

이번 글에서는 하나의 고정된 데이터셋을 서로 다른 유형의 차트로 시각화해 보면서, 같은 데이터라도 어떤 차트를 선택하느냐에 따라 분석 관점이 달라질 수 있음을 살펴보겠습니다.

예제로 사용할 데이터는 인도(India)의 2019년 인구 추계 값입니다.

국가/지역연도변형(Variant)값(Value)
인도2019중위(Medium)1368737.513
인도2019높음(High)1378419.072
인도2019낮음(Low)1359043.965
인도2019출산력 일정(Constant fertility)1373707.838
인도2019즉시 대체(Instant replacement)1366687.871
인도2019이주 없음(Zero migration)1370868.782
인도2019사망률 일정(Constant mortality)1366282.778
인도2019변화 없음(No change)1371221.64
인도2019모멘텀(Momentum)1367400.614

기본 플롯(Basic Plot)

먼저 선 그래프, 산점도, 히스토그램과 같은 가장 기본적인 플롯부터 만들어 보겠습니다.

선 그래프(Line Plots)

선 그래프는 x값과 y값 사이의 관계를 선으로 연결해 표현하는 플롯입니다. 시간의 흐름에 따른 변화를 확인할 때 특히 유용합니다.

import matplotlib.pyplot as plt
Year = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
India_Population = [1173108018,1189172906,1205073612,1220800359,1266344631,1309053980,1324171354,1339180127,1354051854,1368737513]
plt.plot(Year, India_Population)
plt.show()

출력 결과

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드

산점도(Scatter Plots)

반면, 두 개의 좌표 값을 가진 수량을 개별 데이터 포인트로 표현하고 싶다면 산점도가 더 적합합니다.

선 그래프와 동일한 데이터를 사용하며, 앞선 코드에서 단 한 줄만 수정하면 산점도를 그릴 수 있습니다.

plt.plot(Year, India_Population,'o')

출력 결과

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드

히스토그램(Histogram)

히스토그램은 과학 및 데이터 분석 분야에서 매우 자주 사용되는 차트로, 데이터의 분포를 시각화할 때 특히 유용합니다. 언젠가 반드시 그려야 할 일이 생길 가능성이 높은 차트이기도 합니다.

import pandas as pd
import matplotlib.pyplot as plt
data = [
['India', 2019, 'Medium', 1368737.513],
['India', 2019, 'High', 1378419.072],
['India', 2019, 'Low', 1359043.965],
['India', 2019, 'Constant fertility', 1373707.838],
['India', 2019,'Instant replacement', 1366687.871],
['India', 2019, 'Zero migration', 1370868.782],
['India', 2019,'Constant mortality', 1366282.778],
['India', 2019, 'No change', 1371221.64],
['India', 2019, 'Momentum', 1367400.614]]
df = pd.DataFrame(data, columns = ([ 'Country or Area', 'Year(s)', 'Variant', 'Value']))
df.hist()
plt.show()

출력 결과

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드

파이 차트(Pie Charts)

파이 차트는 전체에서 각 항목이 차지하는 비율을 직관적으로 보여 주는 데 효과적입니다.

import numpy as np
import matplotlib.pyplot as plt

n = 25
Z = np.ones(n)
Z[-1] *= 2.5

plt.axes([0.05, 0.05, 0.95, 0.95])
plt.pie(Z, explode = Z*.05, colors = ['%f' % (i/float(n)) for i in range(n)],
   wedgeprops = {"linewidth": 1, "edgecolor": "green"})
plt.gca().set_aspect('equal')
plt.xticks([]), plt.yticks([])
plt.show()

출력 결과

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드

극좌표 플롯(Polar Plot)

극좌표 플롯은 각도와 반지름을 기준으로 데이터를 표현하는 방식으로, 방향성이나 주기성을 가진 데이터를 시각화할 때 유용합니다.

코드:

import numpy as np
import matplotlib.pyplot as plt

ax = plt.axes([0.5,0.05,0.95,0.95], polar=True)

N = 25
theta = np.arange(0.0, 2.5*np.pi, 2.5*np.pi/N)
radii = 10*np.random.rand(N)
width = np.pi/4*np.random.rand(N)
bars = plt.bar(theta, radii, width=width, bottom=0.0)

for r,bar in zip(radii, bars):
    bar.set_facecolor( plt.cm.jet(r/10.))
    bar.set_alpha(0.5)

ax.set_xticklabels([])
ax.set_yticklabels([])

plt.show()

출력 결과

파이썬(Python)으로 다양한 차트 활용하기 – 데이터 시각화 실전 가이드