소개
이 랩에서는 Python Matplotlib 을 사용하여 matplotlib.sankey 모듈의 Sankey 클래스를 활용하여 긴 연결 체인을 만드는 방법을 배웁니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 즉시 문제를 해결해 드리겠습니다.
필요한 라이브러리 및 모듈 가져오기
필요한 라이브러리와 모듈을 가져오는 것으로 시작합니다. matplotlib.pyplot 및 matplotlib.sankey를 사용할 것입니다.
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
각 측면의 링크 수 정의
다음으로, 체인에서 각 측면의 링크 수를 정의합니다. 이 예제에서는 6 으로 설정합니다.
links_per_side = 6
side 함수 정의
이제 측면 체인을 생성하는 side 함수를 정의합니다.
def side(sankey, n=1):
"""Generate a side chain."""
prior = len(sankey.diagrams)
for i in range(0, 2*n, 2):
sankey.add(flows=[1, -1], orientations=[-1, -1],
patchlabel=str(prior + i),
prior=prior + i - 1, connect=(1, 0), alpha=0.5)
sankey.add(flows=[1, -1], orientations=[1, 1],
patchlabel=str(prior + i + 1),
prior=prior + i, connect=(1, 0), alpha=0.5)
corner 함수 정의
다음으로, 코너 링크를 생성하는 corner 함수를 정의합니다.
def corner(sankey):
"""Generate a corner link."""
prior = len(sankey.diagrams)
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel=str(prior), facecolor='k',
prior=prior - 1, connect=(1, 0), alpha=0.5)
Figure 및 Axis 객체 생성
이제 plt.subplots()를 사용하여 figure 및 axis 객체를 생성합니다.
fig, ax = plt.subplots()
Sankey 객체 생성
다음으로, ax 객체를 사용하여 Sankey 객체를 생성하고 unit을 None으로 설정합니다.
sankey = Sankey(ax=ax, unit=None)
첫 번째 다이어그램 추가
flows=[1, -1] 및 orientations=[0, 1]을 사용하여 sankey.add()로 첫 번째 다이어그램을 추가합니다.
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel="0", facecolor='k',
rotation=45)
사이드 체인 및 코너 링크 추가
이제 side() 및 corner() 함수를 사용하여 사이드 체인과 코너 링크를 추가합니다.
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
Sankey 다이어그램 완성 및 표시
마지막으로, sankey.finish()를 사용하여 Sankey 다이어그램을 완성하고 plt.show()를 사용하여 표시합니다.
sankey.finish()
plt.show()
요약
이 랩에서는 Python Matplotlib 을 사용하여 matplotlib.sankey 모듈의 Sankey 클래스를 활용하여 긴 연결 체인을 만드는 방법을 배웠습니다. 사이드 체인과 코너 링크를 각각 생성하기 위해 side 및 corner 함수를 정의했습니다. 또한 Sankey 객체를 사용하여 첫 번째 다이어그램, 사이드 체인 및 코너 링크를 추가하고 plt.show()를 사용하여 다이어그램을 표시했습니다.