소개
이 랩에서는 Matplotlib 을 사용하여 플롯의 생명 주기를 탐구합니다. 원시 데이터로 시작하여 사용자 정의 시각화를 저장하는 것으로 마무리합니다. 플롯을 생성하고, 스타일을 제어하고, 모양을 사용자 정의하고, 여러 시각화를 결합하고, 플롯을 디스크에 저장하는 방법을 배웁니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
필요한 모듈 가져오기
먼저, 필요한 모듈인 Matplotlib 과 NumPy 를 가져와야 합니다.
import matplotlib.pyplot as plt
import numpy as np
데이터 준비
다양한 회사의 판매 정보를 포함하는 샘플 데이터 세트를 사용합니다. 다음은 데이터의 예시입니다.
data = {'Barton LLC': 109438.50,
'Frami, Hills and Schmidt': 103569.59,
'Fritsch, Russel and Anderson': 112214.71,
'Jerde-Hilpert': 112591.43,
'Keeling LLC': 100934.30,
'Koepp Ltd': 103660.54,
'Kulas Inc': 137351.96,
'Trantow-Barrows': 123381.38,
'White-Trantow': 135841.99,
'Will LLC': 104437.60}
group_data = list(data.values())
group_names = list(data.keys())
group_mean = np.mean(group_data)
플롯 생성
판매 데이터를 나타내기 위해 막대 그래프 (barplot) 시각화를 사용합니다. 다음 단계를 따르세요.
plt.subplots()를 사용하여 figure 와 axis 객체를 생성합니다.
fig, ax = plt.subplots()
- axis 객체의
barh()메서드를 사용하여 데이터를 플롯합니다.
ax.barh(group_names, group_data)
플롯 스타일 사용자 정의
시각적으로 더 매력적인 플롯을 만들기 위해 스타일을 변경할 수 있습니다. 다음 단계를 따르세요.
print(plt.style.available)를 사용하여 사용 가능한 스타일 목록을 출력합니다.
print(plt.style.available)
- 스타일을 선택하고
plt.style.use(style_name)를 사용하여 적용합니다.
plt.style.use('fivethirtyeight')
- 플롯을 다시 표시해 보겠습니다.
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
플롯 모양 사용자 정의
플롯의 모양을 더 사용자 정의할 수 있습니다. 다음 단계를 따르세요.
- x 축 레이블을 회전하여 가독성을 높입니다.
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
- x 축 및 y 축의 limits, labels, title 을 설정합니다.
ax.set(xlim=[-10000, 140000],
xlabel='Total Revenue',
ylabel='Company',
title='Company Revenue')
- 플롯을 다시 표시합니다.
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
title='Company Revenue')
여러 시각화 결합
시각화에 추가적인 플롯 요소를 추가할 수 있습니다. 다음 단계를 따르세요.
- 판매 데이터의 평균을 나타내는 수직선을 추가합니다.
ax.axvline(group_mean, ls='--', color='r')
- 플롯에 새로운 회사를 주석 처리합니다.
for group in [3, 5, 8]:
ax.text(145000, group, "New Company", fontsize=10, verticalalignment="center")
- 플롯 제목의 위치를 조정합니다.
ax.title.set(y=1.05)
- 전체 코드는 아래에 나와 있습니다.
fig, ax = plt.subplots(figsize=(8, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
## Add a vertical line, here we set the style in the function call
ax.axvline(group_mean, ls='--', color='r')
## Annotate new companies
for group in [3, 5, 8]:
ax.text(145000, group, "New Company", fontsize=10,
verticalalignment="center")
## Now we move our title up since it's getting a little cramped
ax.title.set(y=1.05)
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
title='Company Revenue')
plt.show()
플롯 저장
마지막으로, 플롯을 디스크에 저장할 수 있습니다. 다음 단계를 따르세요.
print(fig.canvas.get_supported_filetypes())를 사용하여 지원되는 파일 형식을 출력합니다.
print(fig.canvas.get_supported_filetypes())
fig.savefig(file_path, transparent=False, dpi=80, bbox_inches="tight")를 사용하여 그림을 이미지 파일로 저장합니다. 그림을 저장하려면 이 줄의 주석 처리를 해제하세요.
fig.savefig('sales.png', transparent=False, dpi=80, bbox_inches="tight")
왼쪽 사이드바의 파일 탐색기를 사용하여 저장된 이미지 파일을 열 수 있습니다.
요약
이 랩에서는 Matplotlib 을 사용하여 플롯의 수명 주기에 대해 배웠습니다. 플롯을 생성하고, 스타일을 제어하고, 모양을 사용자 정의하고, 여러 시각화를 결합하고, 플롯을 디스크에 저장하는 것으로 시작했습니다. Matplotlib 은 시각적으로 매력적이고 유익한 플롯을 만들기 위한 광범위한 사용자 정의 옵션을 제공합니다.