1. 그래프를 객체로 다루기
subplots() 함수를 사용하면, figure를 여러 개로 나누어서 각각을 다룰 수 있다. 다음과 같이 적용하면, 2x2크기의 서브플롯을 만들어서 다룰 수 있다.
fig, axes = plt.subplots(2, 2, figsize=(20, 16))
이에 접근하려면 [row, col]로 접근해서 다룰 수 있다. ex)
axes[0, 0].set_title('출판사별 발행도서')
1.1 여러 개의 데이터 그리기
단일 그래프에 여러 데이터를 겹쳐 비교하고 싶다면, 같은 축(ax)을 공유해 사용하면 된다. 예를 들어 선 그래프 2개를 추가한다고 하면 다음과 같다.
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(line1['발행년도'], line1['대출건수'], label='황금가지')
ax.plot(line2['발행년도'], line2['대출건수'], label='비룡소')
ax.set_title('연도별 대출 건수')
ax.legend()
plt.show()
바 그래프 또한 2개를 동시에 그릴 수 있다.
fig, ax = plt.subplots(figsize=(8, 6))
ax.bar(line1['발행년도'], line1['대출건수'], label='황금가지')
ax.bar(line2['발행년도'], line2['대출건수'], label='비룡소')
ax.set_title('년도별 대출건수')
ax.legend()
plt.show()
하지만 이런 경우는 그래프가 겹쳐있어 보기 힘들 수 있다. 이 경우 그래프들을 살짝 움직여서 나란히 옆으로 그릴 수 있다.
fig, ax = plt.subplots(figsize=(8, 6))
ax.bar(line1['발행년도']-0.2, line1['대출건수'], width=0.4, label='황금가지')
ax.bar(line2['발행년도']+0.2, line2['대출건수'], width=0.4, label='비룡소')
ax.set_title('년도별 대출건수')
ax.legend()
plt.show()
2. 스택 영역 그래프
스택 영역 그래프(누적 영역 그래프, Stacked Area Graph)는 여러 개의 데이터가 쌓여서 하나의 전체적인 그래프를 형성하는 형태를 말한다. 따라서 각각의 값들을 볼 수 있는 선 차트와 다르게, 각각의 값들을 알기는 힘들지만 전체 규모의 변화와 개별 데이터의 비율의 변화를 알기 쉽다.
matplot에서는 stackplot() 함수를 이용해서 그릴 수 있다.
fig, ax = plt.subplots(figsize=(8, 6))
ax.stackplot(year_cols, ns_book10.loc[top10_pubs].fillna(0), labels=top10_pubs)
ax.set_title('년도별 대출건수')
ax.legend(loc='upper left')
ax.set_xlim(1985, 2025)
plt.show()
3. 원 그래프
원 그래프의 경우는 pie() 함수를 이용해 그릴 수 있다.
fig, ax = plt.subplots(figsize=(8, 6))
ax.pie(data, labels=labels)
ax.set_title('출판사 도서비율')
plt.show()
4. 숙제
fig, ax = plt.subplots(figsize=(10, 8))
sc = ax.scatter(ns_book8['발행년도'], ns_book8['출판사'],
linewidths=0.5, edgecolors='k', alpha=0.3,
s=ns_book8['대출건수']**1.3, c=ns_book8['대출건수'], cmap='jet')
ax.set_title('출판사별 발행도서')
fig.colorbar(sc)
plt.show()
'혼자 공부하는 데이터 분석 with 파이썬' 카테고리의 다른 글
[혼공 분석] 혼공 학습단 회고 (0) | 2025.02.23 |
---|---|
[혼공 분석] 선, 바 그래프 그리기 (0) | 2025.02.16 |
[혼공 분석] 데이터 분석 (1) | 2025.02.03 |
[혼공 분석] Data cleaning (0) | 2025.01.22 |
[혼공 분석] API, web scraping (1) | 2025.01.14 |