[matplotlib] 산포 그래프(scatter)

반응형
    반응형

    데이터 값이 어디에 모여있고 어디로 떨어져있는지 알 수 있는 산포도 그래프를 작성해보겠습니다.

     

    작성 방법은 간단합니다. 

    plt.scatter(x,y,c,marker,cmap) 정도를 이용하면 기본적인 plot을 만들 수 있습니다.

    x,y는 데이터 포지션으로 x축, y축을 무엇으로 할 것인지 정해줍니다.

    cmap으로 colorbar를 만들 수 있는데 값에 따라 색깔을 정해줍니다.

    색깔을 정해주는 데이터 값을 c에 입력합니다. c는 전체 색깔리스트를 입력하는 것이니 리스트로 입력합니다.

    marker는 표시하는 방식인데 디폴트값은 'o'로 되어있습니다. 즉, 점으로 표시가 됩니다. 

    딱히 변경할게 없는 파라미터이긴 합니다.

     

    좀 더 풍성하게 그래프를 그릴려면 scatter에 쓰이는 파라미터를 더 알고 있어야 하지만

    이번 포스팅에서는 간단한 방법만 소개하겠습니다. 

    파라미터의 자세한 사항은 matplotlib 가이드를 참고하시면 되겠습니다.

     

    간단 작성

    가장 간단하게 그래프를 작성해보겠습니다.

     

    랜덤으로 2차원 데이터를 만들어서 단순하게 scatter로 표현해 보겠습니다.

    import matplotlib.pyplot as plt
    import numpy as np
    y = np.random.standard_normal((1000,2))
    y

    첫번째 column을 x축에 두번째 column을 y축에 넣어서 그래프를 작성합니다.

    plt.scatter(y[:,0],y[:,1])
    plt.xlabel('1st column')
    plt.ylabel('2nd column')
    

    Colormap 넣기

    colormap을 넣어서 색깔을 달리해 그래프를 작성해보겠습니다.

    먼저 데이터 값마다 색깔을 입혀야 하니 색깔 목록 리스트를 작성합니다.

    색깔을 정도에 따라 10등급으로 나눠 색깔을 입히겠습니다.

    c = np.random.randint(0,10,len(y))
    c

    천개의 데이터가 있으니 천개의 숫자를 랜덤으로 0~9중 하나의 숫자로 표현할 리스트를 만들었습니다.

    이렇게 만든 c를 scatter 파라미터에 넣습니다.

     

    plt.scatter(y[:,0],y[:,1],c=c,cmap='coolwarm')
    plt.xlabel('1st column')
    plt.ylabel('2nd column')
    

    색깔이 다르게 구성되어서 데이터를 넣었습니다. plt.colorbar를 이용해 옆에 색상테이블을 붙여넣을 수도 있습니다.

    plt.scatter(y[:,0],y[:,1],c=c,cmap='coolwarm')
    plt.colorbar()
    plt.xlabel('1st column')
    plt.ylabel('2nd column')
    

    0에 가까울수록 파란색이 되고 9에 가까울수록 빨간색에 가깝게 됩니다.

    참고로 지금 이 자료는 사실 데이터분석을 할 수 있는 자료는 아니고 사용방법을 위해서 아무렇게나 배치한 자료입니다.

    좀 더 의미있는 자료가 되게 하려면 c를 랜덤으로 색상으로 맞추면 안되고 분석할 데이터에 맞춰서 색상배치를 해줘야 합니다.

     

    cmap은 종류가 엄청나게 많기 때문에 matplotlib 가이드에서 colormap 부분을 보시면 좋을 것 같습니다.

    관련 포스팅 란에 링크를 걸어두겠습니다.

     

    관련 포스팅

    Colormap in matplotlib

    plt.scatter parameters

    [Python/Numpy] - ndarray 랜덤한값 생성

     

    댓글

    Designed by JB FACTORY

    ....