(A2) 데이터시각화 중간고사 대비문제
힌트
- 랜덤시드 생성: np.random.seed()를 이용
자료
x=[1,2,3,4]
y=[1,2,4,3]
시각화예시
x=[1,2,3,4]
y=[1,2,4,3]
_, axs = plt.subplots(2,2)
axs[0,0].plot(x,y,'o:r')
axs[0,1].plot(x,y,'Xb')
axs[1,0].plot(x,y,'xm')
axs[1,1].plot(x,y,'.--k')
x = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5]
y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]
y3 = [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]
x4 = [8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8]
y4 = [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89]
fig, axs = plt.subplots(2,2)
axs[0,0].plot(x,y1,'o')
axs[0,0].set_title('(a)')
axs[0,1].plot(x,y2,'o')
axs[0,1].set_title('(b)')
axs[1,0].plot(x,y3,'o')
axs[1,0].set_title('(c)')
axs[1,1].plot(x4,y4,'o')
axs[1,1].set_title('(d)')
fig.tight_layout()
(하니) 그림 (a)는 양의 상관계수를 가진다.
(나애리) 그림 (b)는 산점도가 직선이 아니라 곡선의 모양을 띄고 있으므로 상관계수는 0이다.
(홍두깨) 그림 (c)에서 상단의 이상치를 제외하면 상관계수는 1이다.
(고은혜) 그림 (c)와 (d)의 상관계수를 각각 라고 하자. 그리고 (c)와 (d)에서 각각 이상치를 제외한뒤 구한 상관계수를 이라고 하자. 그렇다면 가 성립한다.
x1=np.arange(0,10,0.1)
y1=x1+np.random.normal(loc=0,scale=1.0,size=len(x1))
plt.plot(x1,y1,'.')
(하니) 두 변수는 양의 상관관계에 있어 보인다.
(나애리) 완전한 직선 모양이 되지는 않았으므로 상관계수는 1보다 작다.
(홍두깨) 산점도를 파악하면 가 증가할때 도 증가하므로 가 를 유발하는 원인이라 해석할 수 있다.
(고은혜) 를 유지한채 의 값을 모두 2배로 하면 상관계수의 값도 2배가 된다.
df=pd.read_csv('https://raw.githubusercontent.com/PacktPublishing/Pandas-Cookbook/master/data/employee.csv')
df
df자료에는 결측치가 존재한다. 예를들면 아래에서 9번자료의 RACE는 아무것도 입력되어있지 않아 NaN으로 처리되었다.
df.iloc[8:11,:]
아래코드를 실행하여 결측치를 포함한 행을 제거하고 몇개의 결측치가 제거되었는지 답하라.
df=df.dropna()
시각화예시
tidy=df.groupby(['RACE','GENDER']).agg({'BASE_SALARY': [np.mean,max,min]}).stack().reset_index().rename(columns={'level_2':'aggtype'})
fig=ggplot(tidy)
bar=geom_bar(aes(x='aggtype',y='BASE_SALARY',fill='GENDER'),stat='identity',position='dodge')
fig+bar+coord_flip()+facet_wrap(facets="RACE")