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