pandas로 box,area,scatter 그리기

반응형
    반응형

    pandas로만 box plot, area plot, scatter plot을 그려보겠습니다.
    이전 포스팅에서는 막대그래프류인 bar,hist,density에 대해 그려보았었는데
    이번 포스팅에서는 pandas로 그릴 수 있는 나머지 그래프에 대해 살펴보겠습니다.

    box plot

    box plot은 사분위범위를 기준으로 이상치가 어디에 있는지 한눈에 볼 수 있는 그래프입니다.

    import pandas as pd
    import numpy as np
    df = pd.DataFrame(np.random.randn(10,5))
    df.boxplot(return_type='axes')

    여러 컬럼이 있는 penguins이라는 데이터를 가져와 boxplot을 만들어보겠습니다.

    import seaborn as sns
    penguins = sns.load_dataset('penguins')
    penguins = penguins.dropna()

     

    boxplot로 그릴 column을 선택하고 범주는 by로 설정합니다.

    plt.rcParams["figure.figsize"] = (12, 9)
    penguins_dropna.boxplot(column=['bill_length_mm'],by=['sex','island'])
    plt.show()

     

    area plot

    area plot은 말그대로 넓이로써 값을 표현하는 그래프입니다. 디포트 값은 stack=True 으로 행을 기준으로 값을 쌓습니다.

    dfa = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
    dfa.plot(kind='area')

    area 그래프를 수치적으로 표현하면 데이터프레임으로 보면 cumsum(axis=1) 에 해당합니다.

    dfa.cumsum(axis=1)

    행의 값을 쌓지 않으려면stacked=False을 합니다.

    dfa.plot(kind='area',stacked=False)

    scatter plot

    scatter plot은 산포도라고 하는데 (x,y) 값 형태의 흩어진 정도를 확인할 수 있습니다.

    scatter_df = pd.DataFrame(np.random.randn(10000,2),columns=['a','b'])
    scatter_df.plot(kind='scatter',x='a',y='b')

    scatter를 그릴려면 x와 y 컬럼을 지정해서 합니다.
    주로 x,y의 함수관계의 의미가 있거나 데이터가 어느부분에 군집형태로 모이고 있는지 확인할 수 있습니다.

    scatter matrix

    scatter matrix는 산점도 행렬이라고 하는데 다변량 데이터에서 각 변수 간 관계를 산포도로 그려줍니다.
    alpha로 투명도를 조정할 수 있습니다. 디폴트 값은 0.5입니다.
    대각선에 그려지는 그래프는 density plot 과 histogram만 가능합니다.

    from pandas.plotting import scatter_matrix
    np.random.seed(111111)
    df_scm= pd.DataFrame(np.random.randn(1000,4),columns=['a','b','c','d'])
    scatter_matrix(df_scm,alpha=0.2,figsize=(6,6),diagonal='kde')

    다음은 histogram으로 그린 경우입니다.

    df_scm= pd.DataFrame(np.random.randn(1000,4),columns=['a','b','c','d'])
    scatter_matrix(df_scm,alpha=0.2,figsize=(6,6),diagonal='hist')

    마치며

    판다스만 사용해서 그려지는 그래프에 대해서 정리해보았습니다.
    matplotlib 처럼 모양을 더 이쁘게 그릴 수 있지는 않지만 plot을 이용하면
    데이터프레임의 변경없이 간편하게 그래프를 있었습니다.

     

    관련 포스팅
    pandas plot

    pandas로 bar,hist,density 그리기

    'Python > Pandas' 카테고리의 다른 글

    pandas cheatsheet(코드요약)  (0) 2022.09.24
    [Pandas] 데이터프레임 리스트,numpy 배열로 변환  (0) 2022.09.22
    pandas로 bar,hist,density 그리기  (0) 2022.03.15
    pandas plot  (0) 2022.03.10
    [Pandas]구간 나누기(pd.cut,pd.qcut)  (0) 2022.03.08

    댓글

    Designed by JB FACTORY

    ....