Python_AI and Bigdata

현업에서 자주 쓰는 시각화(matplotlib.pyplot)

렁다이쿤 2022. 9. 14. 00:57
728x90

현업에서 자주 쓰는 시각화에 관해  포스팅합니다.

 

from matplotlib import pyplot as plt

 

먼저, 히스토그램!

 

변수 각각이 어떤 분포를 띠고 있는지 보고 싶을 경우, 혹은 빈도수가 어떻게 나뉘는 지 보고 싶을 경우 사용됩니다.

 

역시나 iris데이터로 시작합니다

plt.hist(iris["Sepal.Length"])
Out[6]:
(array([ 9., 23., 14., 27., 16., 26., 18.,  6.,  5.,  6.]),
 array([4.3 , 4.66, 5.02, 5.38, 5.74, 6.1 , 6.46, 6.82, 7.18, 7.54, 7.9 ]),
 <BarContainer object of 10 artists>)

 

 

 

 

 

다음으로 plot입니다. plot은 제가 보통 쓰는 방식으로 포스팅 되었고, 각자에게 맞는 방식을 찾으시길 바랍니다.

 

plt.figure(figsize=(15,8)) # plot size를 설정하는 방법으로(가로, 세로) 입니다.
plt.plot(iris["Sepal.Length"])
plt.plot(iris["Sepal.Length"], "ro") # 빨간색 점들을 찍어줍니다.
plt.xlabel("X-axis") # x축 label
plt.ylabel("Y-axis") # y축 label
plt.title("Title Name") # 타이틀

# title을 한글로 쓰시고 싶으시면 아래 코드를 플롯하기 전에 실행시키면 됩니다. 저는 개인적으로영어로 적는 것을 추천!
"""
import matplotlib
matplotlib.rcParams['font.family'] ='Malgun Gothic'
matplotlib.rcParams['axes.unicode_minus'] =False
"""

저는 다음과 같이 catter와 line을 모두 함께 출력하는 것을 선호합니다. 데이터가 밀집 되어있는 경우에는 figsize에서 세로 길이를 늘려서 꼼꼼히 데이터를 확인합니다.

 

 

다음으로, 두개의 플롯을 동시에 출력하고 싶다면?

 

plt.plot(iris["Sepal.Length"], 'cs--', label = 'graph1') # cyan색, square 마커
plt.plot(iris["Sepal.Width"], 'rx:', label = 'graph2') # 빨간색, x 마커 
plt.legend() # 왼쪽 위에 표시된 legend 생성
plt.show() # 플롯 보여주기

 

한 그래프 말고 여러 그래프를 한 플롯에 출력하고 싶다면?

 

plt.figure(figsize=(15,8)) # plot figsize 설정
plt.subplot(221) # 2x2 플롯 중 1번째 플롯
plt.plot(iris["Sepal.Length"])
plt.title("S_L")

plt.subplot(222) # 2x2 플롯 중 2번째 플롯
plt.plot(iris["Sepal.Width"])
plt.title("S_W")

plt.subplot(223) # 2x2 플롯 중 3번째 플롯
plt.plot(iris["Petal.Length"])
plt.title("P_L")

plt.subplot(224) # 2x2 플롯 중 4번째 플롯
plt.plot(iris["Petal.Width"])
plt.title("P_W")

 

이제 여러 그래프를 출력했으니, 그래프를 저장하는 방법을 알아봐야겠죠?

 

path = "경로/"
# 이렇게 path를 따로 저장하는 이유는 아래 좋은 꿀팁이 있기 때문!
# path 지정하면 가독성이 좋고 코드가 깔끔해져요.
plt.plot(iris["Sepal.Length"])
plt.savefig(path + "플롯이름.png")

 

저렇게 하면 지정된 path에 저장이됩니다.

 

변수가 많은데, 모든 변수의 플롯을 하나하나 다 저장하기 힘드니 for문을 써서 플롯을 저장하는 방법을 알아봅시다!

 

col = iris.columns[:4]
col
Out[9]:
Index(['Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width'], dtype='object')
In [10]:
for i in col:
    print(i)
Sepal.Length
Sepal.Width
Petal.Length
Petal.Width
In [11]:
# iris에 관한 4가지 변수를 모두 지정된 플롯으로 자동 저장하는 방법
for i in col:
    plt.plot(iris[i])
    plt.savefig(path + i + ".png")

 

여기까지가 현업에서 자주 쓰는 시각화 방법이었습니다.

 

이 외에도 많은 시각화 방법이 있지만 이정도만 익히고, 필요시 고급 스킬을 구글링하는 방법을 추천드립니다!