학습 목표
- barplot을 그리는 방법을 알아봅니다.
핵심 키워드
- sns.barplot()
- ci(신뢰구간)
학습하기
학습 목표
- barplot을 그리는 방법을 알아봅니다.
핵심 키워드
- sns.barplot()
- ci(신뢰구간)
학습하기
학습 내용
barplot
sns.barplot(data=df, x="연령대코드(5세단위)", y="총콜레스테롤")
결과 :
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="총콜레스테롤", hue="음주여부")
속도가 오래 걸리므로 sample로 먼저 그리고, 전체를 그려봅니다.
hue에 "음주여부"를 추가합니다.
결과 :
plt.figure(figsize=(15,4))
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="총콜레스테롤", hue="흡연상태")
이번에는 흡연상태를 hue에 넣어봅니다.
결과 :
신뢰구간(ci)
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="트리글리세라이드", hue="음주여부", ci=95)
ci는 신뢰구간 수준입니다. 95%의 신뢰구간을 지정하고 싶다면 95를 입력합니다.
결과 :
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="트리글리세라이드", hue="음주여부", ci=sd)
음주를 하는 사람이 트리글리세라이드(중성지방수치)가 높은 경향이 있습니다.
결과 :
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="체중(5Kg 단위)", hue="성별코드", ci=None)
신뢰구간을 표시하고 싶지 않다면 None을 설정합니다.
나이가 높을수록 체중이 더욱 높다는 사실을 그래프에서 볼 수 있습니다.
결과 :
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="체중(5Kg 단위)", hue="음주여부", ci=None)
음주를 하는 사람들이 체중이 많이 나가는 경향이 보입니다.
결과 :
http://ko.wikipedia.org
http://ko.wikipedia.org
comment
# 연령대코드와 총 콜레스테롤을 봅니다.
# 콜레스테롤과 연령대코드(5세단위)를 흡연상태에 따라 barplot으로 그립니다.
plt.figure(figsize=(15,4))
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="총콜레스테롤",hue="흡연상태")
라는 해당 코드에서
AttributeError: 'numpy.float64' object has no attribute 'startswith'
라는 오류가 뜨는데 해결방법 아시는 분 있을까요?
처음에는 hue에 쓰이는 "흡연상태"열을 object타입으로 바꾸면 해결됐는데 ( df["흡연상태"] = df["흡연상태"].astype(str) )
다시 셀 실행시켜보니 안 되네요.....
14.4 barplot에서 sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="총콜레스테롤",hue="음주여부")를 하면 자꾸 name 'df_sample' is not defined 라고 뜨는데 왜그런가요?
The `ci` parameter is deprecated. Use `errorbar=('ci', 95)` for the same effect.
seaborn 0.12.0 버전부터 option 사용법이 달라졌네요. 현재 (2023.9월) seaborn 최신버전은 0.13.0
- errorbars 사용방법: https://seaborn.pydata.org/tutorial/error_bars.html
- 본인이 사용하는 버전 확인하는 방법: sns.__version__
버전 차이인지 저는 ci=95 그대로 쓰면, 되긴 하지만 오류 문구가 나옵니다. errorbar=('ci',95) 또는 errorbar="sd" 등으로 문법이 바뀐 듯 합니다. 참고바랍니다.
TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'
seaborn이 9.0 이상으로 업그레이드 되지 않았을 경우 위와 같은 에러가 발생합니다.
이 때 'Anaconda Prompt'를 마우스 우측 버튼의 '관리자 권한으로 실행'으로 연 뒤,
pip install seaborn --upgrade 를 입력하시고 재시작하면 정상 작동됩니다.
x축의 5,6,7,8 ~ 17,18의 의미가 궁금합니다.
데이터를 보면 신장(5cm단위)과 몸무게는(5kg)단위라서 5단위로 되어있는데,
연령대코드(5세단위)는 8,7,9,11~~ 이런식으로 되어있어서요
sns.barplot(data=df,x="연령대코드(5세단위)",y="총콜레스테롤")
여기서
감사합니다.
잘보고 있습니다 ~~ 감사해요
저는 어제 자료 받아서 따라해보고 있는데 파일이 수정되었나 보네요.
체중(5Kg단위) 띄어쓰기 없네요 ㅎㅎ
sns.barplot(data=df_sample, x="연령대코드(5세단위)", y="트리글리세라이드", hue="음주여부", ci="sd")