본문 바로가기

Data/Data Visualization

[Seaborn] seaborn line plotting tutorial

목차

    반응형

     

     

     

    In [2]:
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    sns.set(style="darkgrid")
    
     

    relplot 기본설정은 scatter, 라인형식으로 바꾸려면 kind변수를 line으로 설정

    In [3]:
    df = pd.DataFrame(dict(time=np.arange(500),
                          value = np.random.randn(500).cumsum()))
    g = sns.relplot(x='time', y='value', kind='line', data=df)
    g.fig.autofmt_xdate()
    
     
     

    일반적으로 x축을기반으로 순차적으로 라인그래프가 그려지는데 이는 sort 변수를 False로 설정하여 비활성화시킴

    In [4]:
    df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=['x', 'y'])
    sns.relplot(x='x', y='y', sort=False, kind='line', data=df)
    
    Out[4]:
    <seaborn.axisgrid.FacetGrid at 0x7facfa4d92b0>
     
     

    한개의 x축에서 여러개 y값을 가질 때, seaborn에서는 평균값을 실선으로 95% confidence interval을 범위값으로 표현

    In [5]:
    fmri = sns.load_dataset('fmri')
    sns.relplot(x='timepoint', y='signal', kind='line', data=fmri)
    
    Out[5]:
    <seaborn.axisgrid.FacetGrid at 0x7facfa824f98>
     
     

    confidence interval을 비활성화를 하려면 ci 변수를 None으로 설정

    In [6]:
    sns.relplot(x='timepoint', y='signal', ci=None, kind='line', data=fmri)
    
    Out[6]:
    <seaborn.axisgrid.FacetGrid at 0x7face8550f28>
     
     

    confidence interval이 아닌 표준편차를 보여주려면 ci변수를 sd로 설정

    In [7]:
    sns.relplot(x='timepoint', y='signal', ci='sd', kind='line', data=fmri)
    
    Out[7]:
    <seaborn.axisgrid.FacetGrid at 0x7facfa387e48>
     
     

    만일 한개의 x축에 여러개 y값을 보여주고싶다면 estimator 값을 None으로 설정

    In [10]:
    sns.relplot(x='timepoint', y='signal', estimator=None, kind='line', data=fmri)
    
    Out[10]:
    <seaborn.axisgrid.FacetGrid at 0x7face8966828>
     
     

    line그래프에 카테고리를 적용할경우 scatter형식과 마찬가지로 hue에 column이름을 설정

    In [13]:
    sns.relplot(x='timepoint', y='signal', hue='event', kind='line', data=fmri)
    
    Out[13]:
    <seaborn.axisgrid.FacetGrid at 0x7facb8cd6710>
     
    In [14]:
    sns.relplot(x="timepoint", y="signal", hue="region", style="event",
                kind="line", data=fmri);
    
     
     

    마커유형도 지정이 가능하다 :)

    In [15]:
    sns.relplot(x="timepoint", y="signal", hue="region", style="event",
                dashes=False, markers=True, kind="line", data=fmri);
    
     
     

    날짜형식 데이터 plotting

    In [17]:
    df = pd.DataFrame(dict(time=pd.date_range('2019-1-1', periods=200),
                          value=np.random.randn(200).cumsum()))
    g = sns.relplot(x='time', y='value', kind='line', data=df)
    g.fig.autofmt_xdate()
    
     
     

    Appendix

    관계형 데이터 plotting

    In [19]:
    tips = sns.load_dataset("tips")
    sns.relplot(x='total_bill', y='tip', hue='smoker',
               col='time', data=tips)
    
    Out[19]:
    <seaborn.axisgrid.FacetGrid at 0x7facb8a2cba8>
     
    In [20]:
    sns.relplot(x='timepoint', y='signal', hue='subject',
               col='region', row='event', height=3,
               kind = 'line', estimator=None, data=fmri)
    
    Out[20]:
    <seaborn.axisgrid.FacetGrid at 0x7facfa91f048>
     
    In [25]:
    sns.relplot(x='timepoint', y='signal', hue='event', style='event',
               col='subject', col_wrap=5,
               height=3, aspect=.75, linewidth=2.5,
               kind='line', data=fmri.query("region == 'frontal'"))
    
    Out[25]:
    <seaborn.axisgrid.FacetGrid at 0x7facb93a3710>
     
    반응형

    'Data > Data Visualization' 카테고리의 다른 글

    [Seaborn] seaborn scatter tutorial  (0) 2019.12.22
    [Seaborn] seaborn 라이브러리 연습  (0) 2019.12.22