[ Python ] 신뢰구간 시각화하기 (lineplot or fill_between)
2019. 10. 31. 19:30ㆍ분석 Python/Visualization
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^
시각화를 할 때 신뢰구간을 같이 그려줘야 하는 경우가 있다.
그때 단순히 선으로 표시를 해줄 수도 있고 영역을 색칠해서 표현하는 경우가 있는데, 여기선 영역을 색칠하는 경우에 대해서 알아보고자 한다.
간편하게 그리는 방법은 lineplot
일일이 그리는 방법 (fill_between) 사용하는 방법이 있다.
seaborn lineplot
timepoint 쌓아 놓으면 안에서 해주는 구조
import numpy as np
import pandas as pd
value = np.random.normal(loc = 0 , scale = 1.0 , size= (10000,1))
event = np.random.randint(0,2 , size = (10000,1))
timepoint = np.random.randint(0,1000, size = (10000,1))
test = pd.DataFrame(np.concatenate((timepoint , event , value),axis =1),
columns=["timepoint","event","signal"])
fig , ax = plt.subplots(figsize= (15,15))
ax = sns.lineplot(x="timepoint", y="signal",
hue="event", style="event", ci = 95 ,
markers=False, dashes=False, data=test )
장점 : 간단하고 이쁘게 그려줌
단점 : 다 계산을 해주는 거라서 많아질수록 느림
그냥 그려주는 경우 fill_between 사용
보여주는 용도이므로 간단하게 진행 개별적으로 값을 먼저 구해놓고 그리기
value = np.random.normal(loc = 0 , scale = 1.0 , size= 1000)
value = np.cumsum(value)
upper = value + np.random.uniform(low = 0 , high = 5 , size= 1000)
lower = value - np.random.uniform(low = 0 , high = 5 , size= 1000)
iteration = np.arange(0,1000)
fig , ax = plt.subplots(figsize=(15,15))
ax.plot(iteration , value, color ="black")
ax.fill_between(iteration , lower , upper ,
facecolor = "green" , interpolate=True)
ax.plot(iteration , value-10, color ="blue")
ax.fill_between(iteration , lower-10 , upper-10 ,
facecolor = "red", interpolate=True)
장점 : seabron.lineplot 보다는 더 계산량이 줄어들어서 체감상 느끼는 속도는 더 빠름
단점 : 꾸며야 할 게 많아서 귀찮을 수 있음
728x90
'분석 Python > Visualization' 카테고리의 다른 글
[ Python ] seaborn catplot 을 활용하여 시각화하기 (0) | 2019.12.01 |
---|---|
[ Python ] visualization 결과 객체값으로 저장하기 (0) | 2019.11.26 |
[ Python ] plotly express facet_row , col scale free 하는 법 공유 (0) | 2019.10.18 |
[ Python ] seaborn subplots x_ticklables rotate 하는 법 (0) | 2019.09.13 |
파이썬에서 R처럼 gather 함수와 자주 쓸 것 같은 시각화 코드 (0) | 2019.07.06 |