ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 현업에서 자주 쓰는 시각화(matplotlib.pyplot)
    Python_AI and Bigdata 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")

     

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

     

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

    댓글

Designed by Tistory.