본문 바로가기

카테고리 없음

[패스트캠퍼스 수강 후기] 데이터분석 인강 100% 환급 챌린지 21회차 미션

18. ch02. seaborn - 03. seaborn matplotlib 차트를 seaborn에서 - 19. ch02. seaborn - 04. seaborn 샘플 데이터


18. ch02. seaborn - 03. seaborn matplotlib 차트를 seaborn에서

1. Scatterplot
0~1 사이의 임의의 랜덤한 값

np.random.rand(50)

0 부터 50개의 값을 순차적으로 생성

np.arange(50)

1-1. x, y, colors, area 설정

colors 는 임의 값을 color 값으로 변환합니다.
area는 점의 넓이를 나타냅니다. 값이 커지면 당연히 넓이도 커집니다.

x = np.random.rand(50)
y = np.random.rand(50)
colors = np.arange(50)
area = x * y * 1000

plt.scatter(x, y, s=area, c=colors)

plt.show()

seaborn 에서는 size와 sizes를 동시에 지정해줍니다.
sizes 옵션에서는 사이즈의 min, max를 명시해 줍니다.
hue는 컬러 옵션입니다.
palette를 통해 seaborn이 제공하는 아름다운 palette 를 이용하시면 됩니다.

sns.scatterplot(x, y, size=area, sizes=(area.min(), area.max()), hue=area, palette='gist_gray')
plt.show()

palette에 틀린 값을 넣으면 예시를 보여주니 거기서 골라쓰면 됨.

1-2. cmap과 alpha

cmap에 컬러를 지정하면, 컬러 값을 모두 같게
alpha값은 투명도. 0 ~ 1 사이의 값을 지정. 0에 가까울 수록 투명


np.random.rand(50)



plt.figure(figsize=(12, 6))

plt.subplot(131)
plt.scatter(x, y, s=area, c='blue', alpha=0.1)
plt.title('alpha=0.1')
plt.subplot(132)
plt.title('alpha=0.5')
plt.scatter(x, y, s=area, c='red', alpha=0.5)
plt.subplot(133)
plt.title('alpha=1.0')
plt.scatter(x, y, s=area, c='green', alpha=1.0)

plt.show()

2. Barplot, Barhplot

1개의 canvas 안에 다중 그래프

x = ['Math', 'Programming', 'Data Science', 'Art', 'English', 'Physics']
y = [66, 80, 60, 50, 80, 10]

sns.barplot(x, y, alpha=0.8, palette='YlGnBu')


plt.ylabel('Scores')
plt.title('Subjects')
plt.show()


2-2. 기본 Barhplot 그리기

barh 함수에서는 xticks로 설정했던 부분을 yticks로 변경


x = ['Math', 'Programming', 'Data Science', 'Art', 'English', 'Physics']
y = [66, 80, 60, 50, 80, 10]

plt.barh(x, y, align='center', alpha=0.7, color='green')
plt.yticks(x)
plt.xlabel('Scores')
plt.title('Subjects')

plt.show()


seaborn에서는 y와 x 순서 변경

x = ['Math', 'Programming', 'Data Science', 'Art', 'English', 'Physics']
y = [66, 80, 60, 50, 80, 10]

ax = sns.barplot(y, x, alpha=0.8, palette='YlOrRd')


plt.xlabel('Scores')
plt.title('Subjects')

plt.show()


비교 그래프


그래프를 임의로 그려야 하는 경우 -> matplotlib
DataFrame을 가지고 그리는 경우 -> seaborn
seaborn 에서는 hue 옵션으로 매우 쉽게 비교 barplot을 그릴 수 있습니다.

titanic = sns.load_dataset('titanic')
titanic.head()


sns.barplot(x='sex', y='survived', hue='pclass', data=titanic, palette='muted')

plt.show()



19. ch02. seaborn - 04. seaborn 샘플 데이터


3. Line Plot


3-1. 기본 lineplot


x = np.arange(0, 10, 0.1)
y = 1 + np.sin(x)

plt.plot(x, y)

plt.xlabel('x value', fontsize=15)
plt.ylabel('y value', fontsize=15)
plt.title('sin graph', fontsize=18)

plt.show()


3-2. 2개 이상의 그래프

color: 컬러 옵션
alpha: 투명도 옵션

x = np.arange(0, 10, 0.1)
y_1 = 1 + np.sin(x)
y_2 = 1 + np.cos(x)

plt.plot(x, y_1, label='1+sin', color='blue', alpha=0.3)
plt.plot(x, y_2, label='1+cos', color='red', alpha=0.7)

plt.xlabel('x value', fontsize=15)
plt.ylabel('y value', fontsize=15)
plt.title('sin and cos graph', fontsize=18)

plt.grid()
plt.legend()

plt.show()

3-3. 마커 스타일링

marker: 마커 옵션

x = np.arange(0, 10, 0.1)
y_1 = 1 + np.sin(x)
y_2 = 1 + np.cos(x)

plt.plot(x, y_1, label='1+sin', color='blue', alpha=0.3, marker='o')
plt.plot(x, y_2, label='1+cos', color='red', alpha=0.7, marker='+')

plt.xlabel('x value', fontsize=15)
plt.ylabel('y value', fontsize=15)
plt.title('sin and cos graph', fontsize=18)

plt.grid()
plt.legend()

plt.show()


3-4 라인 스타일 변경

linestyle: 라인 스타일 변경 옵션

x = np.arange(0, 10, 0.1)
y_1 = 1 + np.sin(x)
y_2 = 1 + np.cos(x)

plt.plot(x, y_1, label='1+sin', color='blue', linestyle=':')
plt.plot(x, y_2, label='1+cos', color='red', linestyle='-.')

plt.xlabel('x value', fontsize=15)
plt.ylabel('y value', fontsize=15)
plt.title('sin and cos graph', fontsize=18)

plt.grid()
plt.legend()

plt.show()

4. Areaplot (Filled Area)


5. Histogram

5-1. 기본 Histogram



N = 100000
bins = 30

x = np.random.randn(N)

plt.hist(x, bins=bins)

plt.show()




sns.distplot(x, bins=bins, kde=False, hist=True, color='g')


kde을 True로 설정해주면, Density가 Y축에 표기

sns.distplot(x, bins=bins, kde=True, hist=True, vertical=True, color='r')

sharey: y축을 다중 그래프가 share
tight_layout: graph의 패딩을 자동으로 조절해주어 fit한 graph를 생성








패스트캠퍼스 데이터분석 강의 링크
bit.ly/3imy2uN