실습 코드 :
6-1 : https://colab.research.google.com/drive/1Ic_iY1llLhdKPoS8IOAEMHWKoIp5wGVS?usp=sharing
6-2 : https://colab.research.google.com/drive/1tb1SFZwz12tRde_l90nZbaiulMVX_EZg?usp=sharing
복잡한 그래프나 한 피겨에 여러개의 서브플롯을 사용하는 경우 객체지향 방식으로 그래프를 그리는 것이 유리하다.
plt.rc(<그룹>, <그룹 하위 속성>)
plt.rc('font', family='NanumbarunGothic)
import matplotlib
matplotlib.get_cachedir()
-> 'C:\Users\Administrator\.matplotlib'
2. 해당 파일 삭제 후 커널 재시작.
출판사의 연도별 도서 발행 개수 산점도를 그려보며 실습해보았다.
ax.scatter(ns_book8.발행년도, ns_book8.출판사, s=ns_book8.대출건수)
ax.scatter(ns_book8.발행년도, ns_book8.출판사, linewidths=0.5, edgecolors='k', alpha=0.3, s=ns_book8.대출건수*2, c=ns_book8.대출건수)
colorbar() : 컬러막대를 나타내주는 함수
sc = ax.scatter(ns_book8.발행년도, ns_book8.출판사, linewidths=0.5, edgecolors='k', alpha=0.3, s=ns_book8.대출건수*2, c=ns_book8.대출건수, cmap='jet')
fig.colorbar(sc)
fig.show()
line1 = ns_book9[ns_book9['출판사'] == '황금가지']
line2 = ns_book9[ns_book9['출판사'] == '비룡소']
fig, ax = plt.subplots(figsize=(8,6))
ax.plot(line1['발행년도'], line1['대출건수'])
ax.plot(line2['발행년도'], line2['대출건수'])
fig, ax = plt.subplots(figsize=(8,6))
ax.plot(line1['발행년도'], line1['대출건수'], label='황금가지')
ax.plot(line2['발행년도'], line2['대출건수'], label='비룡소')
ax.set_title('연도별 대출건수')
ax.legend()
fig.show()
fig, ax = plt.subplots(figsize=(8,6))
for pub in top30_pubs.index[:5]:
line = ns_book9[ns_book9['출판사'] == pub]
ax.plot(line['발행년도'], line['대출건수'], label=pub)
ax.set_title('연도별 대출건수')
ax.legend()
ax.set_xlim(1985, 2025)
fig.show()
ns_book10 = ns_book9.pivot_table(index='출판사', columns='발행년도')
year_cols = ns_book10.columns.get_level_values(1)
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)
fig.show()
fig, ax = plt.subplots(figsize=(8, 6))
ax.bar(line1['발행년도'], line1['대출건수'], label='황금가지')
ax.bar(line2['발행년도'], line2['대출건수'], label='비룡소')
ax.set_title('연도별 대출건수')
ax.legend()
fig.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()
fig.show()
height1 = [5, 4, 7, 9, 8]
height2 = [3, 2, 4, 1, 2]
height3 = [a + b for a, b in zip(height1, height2)]
plt.bar(range(5), height3)
plt.bar(range(5), height1)
ns_book10.loc[top10_pubs[:5], ('대출건수',2013):('대출건수',2020)]
ns_book10.loc[top10_pubs[:5], ('대출건수',2013):('대출건수',2020)].cumsum()
fig, ax = plt.subplots(figsize=(8,6))
for i in reversed(range(len(ns_book12))):
bar = ns_book12.iloc[i]
label = ns_book12.index[i]
ax.bar(year_cols, bar, label=label)
ax.set_title('연도별 대출건수')
ax.legend(loc='upper left')
ax.set_xlim(1985, 2025)
data = top30_pubs[:10]
labels = top30_pubs.index[:10]
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(data, labels=labels)
ax.set_title('출판사 도서 비율')
plt.pie([10,9], labels=['A제품', 'B제품'], startangle=90)
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(data, labels=labels, startangle=90, autopct='%.1f%%')
ax.set_title('출판사 도서 비율')
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(data, labels=labels, startangle=90, autopct='%.1f%%', explode=[0.1]+[0]*9)
ax.set_title('출판사 도서 비율')
ns_book11 = ns_book9.pivot_table(index='발행년도', columns='출판사', values='대출건수')
fig, ax = plt.subplots(figsize=(8,6))
ns_book11[top10_pubs].plot.area(ax=ax, title='연도별 대출건수', xlim=(1985,2025))
ax.legend(loc='upper left')
fig, ax = plt.subplots(figsize=(8, 6))
ns_book11.loc[1985:2025, top10_pubs].plot.bar(ax=ax, title='년도별 대출건수', stacked=True, width=0.8)
ax.legend(loc='upper left')