티스토리 뷰
반응형
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font',family='Malgun Gothic')
plt.rcParams['axes.unicode_minus']=False
df1=pd.DataFrame({'요일':['월','화','수','목','금','토','일'],
'매출액':[10000,9000,11000,8000,13000,15000,14000]})
df2=pd.DataFrame({'요일':['월','화','수','목','금','토','일'],
'매출액':[9000,9500,13000,7000,12000,14000,11000]})
막대그래프
plt.bar(x,y)
plt.barh(x,y)
plt.barh(df1['요일'],df1['매출액'])

막대 폭 지정
width를 지정하면 된다
plt.bar(df1['요일'],df1['매출액'],width=1)

세로막대에선 height를 지정한다.
막대색상 지정
color= 를 한다
plt.bar(df1['요일'],df1['매출액'],color='r')

각각 색상 다르게 지정하기
plt.bar(df1['요일'],df1['매출액'],color=['r','orange','y','g','b','navy','violet'])

막대 테두리 설정
edgecolor=테두리 색상
linewidth= 테두리 두께
hatch=내부 채우기
plt.bar(df1['요일'],df1['매출액'],color=['r','orange','y','g','b','navy','violet'],
edgecolor='gray',linewidth=2)

막대마다 다른 패턴
객체로 막대 받기
set_hatch(기호)
bars=plt.bar(df1['요일'],df1['매출액'],color=['r','orange','y','g','b','navy','violet'],
edgecolor='gray',linewidth=2,hatch='/')
bars[0].set_hatch('.')
bars[1].set_hatch('/')
bars[2].set_hatch('+')
bars[3].set_hatch('-')
bars[4].set_hatch('*')
bars[5].set_hatch(':')
bars[6].set_hatch('o')

막대 위치 지정
plt.bar(df1['요일'],df1['매출액'],width=0.4)
plt.bar(df2['요일'],df2['매출액'],width=0.4)

값이 겹쳐서 보이는 것이 디폴트이다.
plt.bar(df1['요일'],df1['매출액'],width=0.4,align='edge')
plt.bar(df2['요일'],df2['매출액'],width=0.4)

스캐터 플롯
x=[1,5,6,9,10]
y=[1,5,3,9,7]
plt.scatter(x,y)

크기는 s, 색은 c로 표시
크기 변경
plt.scatter(x,y,s=[100,200,50,80,30])

색상지정
plt.scatter(x,y,s=[100,200,50,80,30],c=['r','b','g','k','y'])

컬러캡 지정
cmap=컬러맵
컬러바 표시 plt.colorbar()
plt.scatter(x,y,c=y)
plt.colorbar()

젤 큰 값이 노랑, 작은것이 보라색
데이터로 분석해보기
import seaborn as sns
tips=sns.load_dataset('tips')
tips.head()
#지불금액이 크면 팁도 많이 주는가?
plt.scatter(tips['total_bill'],tips['tip'])
plt.show()

#지불금액이 크면 팁도 많이 주는가?
plt.scatter(tips['total_bill'],tips['tip'],s=tips['size']*50,alpha=0.5)
plt.show()

많이 앉는 테이블일수록 많이 쓴지 본다.
남자가 계산했는지 여자가 계산했는지 알아보기
def set_color(x):
if x=='Male':
return 'blue'
elif x=='Female':
return 'red'
tips['color']=tips['sex'].apply(set_color)
plt.scatter(tips['total_bill'],tips['tip'],s=tips['size']*50,alpha=0.5,
c=tips['color'])
plt.show()

히트맵
plt.pcolor(2차원데이터)
import numpy as np
arr=np.random.standard_normal((5,5))
df=pd.DataFrame(arr)
df

plt.pcolor(df)
plt.colorbar()

plt.pcolor(df,cmap='Blues')
plt.colorbar()

import seaborn as sns
titanic = sns.load_dataset('titanic')
titanic
titanic.isnull().sum()
survived 0 pclass 0 sex 0 age 177 sibsp 0 parch 0 fare 0 embarked 2 class 0 who 0 adult_male 0 deck 688 embark_town 2 alive 0 alone 0 dtype: int64
결측치 행 제거
titanic=titanic.drop(columns=['deck'])
titanic=titanic.dropna()
연령대별 테이블 만들기
titanic['agerange']=(titanic['age']/10).astype('int')*10
titanic.pivot_table(index='class',columns='agerange',values='survived',aggfunc='count')

히트맵 만들기
plt.pcolor(titanic_pivot)
plt.colorbar()
plt.xticks(np.arange(0.5,len(titanic_pivot.columns),1),labels=titanic_pivot.columns)
plt.yticks(np.arange(0.5,len(titanic_pivot.index),1),labels=titanic_pivot.index)

seaborn으로 그리기
heatmap(date=이차원데이터)
cmap=컬러캡
annot=True 수치표시
fmt='d 정수로표시
sns.heatmap(titanic_pivot,cmap='Blues',annot=True,fmt='d')

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 조건형성
- 정보처리기사
- 데이터분석
- 행동심리학
- 강화학습
- 코딩테스트
- 류근관
- 윤성우
- 심리학
- 뇌와행동의기초
- K-MOOC
- 티스토리챌린지
- 물류관리사
- 백준
- Python
- 행동주의
- 통계학
- 일문따
- 인지부조화
- C
- 일본어문법무작정따라하기
- stl
- c++
- 보세사
- 열혈프로그래밍
- 통계
- 일본어
- 회계
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함
반응형