티스토리 뷰

Python

[시각화] Matplotlib

up_one 2025. 1. 15. 17:42

Python의 시각화 패키지 중 가장 기본 패키지인 Matplotlib을 활용해 데이터를 다양한 방법으로 시각화하는 방법을 공부해 보겠습니다.

 

1. 기본 그림

X축, Y축의 범위를 설정하고 각 축의 이름 달기

plt.rcParams['font.family']='Malgun Gothic'  #matplotlib의 한글 깨짐 방지
plt.rcParams['axes.unicode_minus']=False

x = np.arange(10)
y = x+10
plt.plot(x,y)
plt.xlim([0,10])
plt.ylim([0,25])
plt.xlabel('X축')
plt.ylabel('Y축')
plt.show()

 

2. 그래프를 여러 개를 그리고 각각 색깔 지정하기

x = np.linspace(-np.pi, np.pi, 201)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(1,2, figsize=(8,3))   #2개의 그래프를 동일한 크기로 설정
ax[0].plot(x, y1, label='sin함수', color='#802929')
ax[1].plot(x, y2, label='cos함수', color='#6cbf2c')
plt.show()

 

3. lineplot

lineplot은 연속형 변수가 x축에 따라 어떤 추세를 가지고 있는지 파악할 때 유용합니다.

x = np.arange(-5,5,0.5)
y1 = x
y2 = x**2
y3 = np.sin(x)
y4 = np.cos(x)

plt.plot(x, y1)
plt.plot(x, y2, marker='D')  #그래프 점을 설정
plt.plot(x, y3, color='r')
plt.plot(x, y4, linestyle='dashed') #선 스타일 설정
plt.show()

 

4. Barplot

Barplot은 범주형 변수에 대한 시각화를 할 때 유용합니다.

data = {'사과':21, '바나나':15, '배':5, '키위':20}
names = list(data.keys())
values = list(data.values())
colors=['y','r','b','C2']

fig, ax = plt.subplots(2,1)
ax[0].bar(names, values, color=colors, width=0.5)   #색깔, 두께 지정
ax[1].barh(names, values, color=colors)   #가로막대 그래프
plt.show()

 

5. Histogram

Histogram은 연속된 변수의 각 구간 별 빈도를 확인할 때 유용합니다.

data = np.random.rand(10000)
fig,ax = plt.subplots()
ax.hist(data, bins=100, facecolor='g')   #구간을 100로 설정
plt.show()

 

6. Boxplot

Boxplot은 각 변수 별 분포를 나타날 때 유용하며 변수의 중위값, 이상치 등을 파악할 수 있다.

data = [np.random.normal(50,10,100),
       np.random.normal(60,12,200),
       np.random.normal(70,20,200)]

plt.boxplot(data, 
            notch=False, #중위수에 대한 노치 표시
            patch_artist=True,  #상자 색상 채우기
            boxprops=dict(facecolor='lightblue', color='blue'), #상자 속성 설정
           medianprops=dict(color='red', linewidth=2), #중앙값 속성 설정
           whiskerprops=dict(color='blue', linewidth=3), #whisker(수염) 설정
           capprops=dict(color='blue', linewidth=4)) #끝부분 캡 속성

plt.xticks([1,2,3], ['Dataset1', 'Dataset2', 'Dataset3'])
plt.ylabel(['Values'])
plt.show()

 

 

7. Piechart

Piechart는 각 변수가 차지하는 비율을 알아볼 때 유용합니다.

ratio = [34,32,16,18]
labels = ['Apple', 'Banana', 'Melon', 'Grapes']
explode=[0,0.1,0,0.1]

plt.pie(ratio, labels=labels, 
        autopct='%.1f%%',  #표시될 숫자의 형태(소수점 아래 한 자리까지 표현)
        counterclock=True, #시계방향으로 진행
        explode=explode)   #중간에 생기는 간격 explode
plt.show()

 

8. Scatterplot

Scatterplot은 두 개의 연속형 변수 간의 관계를 알아볼 때 유용합니다.

x = np.random.randn(50)
y = np.random.randn(50)
colors = np.random.randn(50)
sizes = 1000*np.random.randn(50)

plt.scatter(x, y, 
            c=colors, #마커색
            s=sizes,  #마커 크기
            alpha=0.3, #마커 투명도
           cmap='viridis',  #컬러맵
            edgecolors='red',  #마커 테두리 색
            linewidths=2 #마커 테두리 두께) 
plt.show()

TAG more
글 보관함
최근에 올라온 글