소개
이 튜토리얼은 Matplotlib 컬렉션을 사용하여 시각화를 생성하는 과정을 안내합니다. 이 튜토리얼에서는 LineCollection, PolyCollection 및 RegularPolyCollection 을 사용하는 방법을 보여줍니다. 또한, 나선형의 위치를 설정하기 위해 LineCollection 및 PolyCollection 의 offsets 및 offset_transform 키워드 인수를 사용하는 방법도 보여줍니다. 이 튜토리얼에서는 RegularPolyCollection 을 사용하여 정다각형을 만드는 방법도 보여줍니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
필요한 라이브러리 임포트
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections, transforms
첫 번째 단계는 필요한 라이브러리를 임포트하는 것입니다. 이 튜토리얼에서는 Matplotlib 와 Numpy 를 사용합니다.
나선형 생성
nverts = 50
npts = 100
## Make some spirals
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])
다음 단계는 Numpy 를 사용하여 나선형을 생성하는 것입니다. sin 및 cos 함수를 사용하여 나선형을 생성합니다.
오프셋 생성
## Fixing random state for reproducibility
rs = np.random.RandomState(19680801)
## Make some offsets
xyo = rs.randn(npts, 2)
세 번째 단계는 Numpy 를 사용하여 오프셋을 생성하는 것입니다. random 함수를 사용하여 오프셋을 생성합니다.
오프셋을 사용하여 LineCollection 생성
col = collections.LineCollection(
[spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)
ax1.add_collection(col, autolim=True)
ax1.autoscale_view()
ax1.set_title('LineCollection using offsets')
네 번째 단계는 오프셋을 사용하여 LineCollection 을 생성하는 것입니다. LineCollection 을 사용하여 오프셋이 있는 곡선을 생성합니다. 또한 offset_transform 을 사용하여 곡선의 위치를 설정합니다.
오프셋을 사용하여 PolyCollection 생성
col = collections.PolyCollection(
[spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)
ax2.add_collection(col, autolim=True)
ax2.autoscale_view()
ax2.set_title('PolyCollection using offsets')
다섯 번째 단계는 오프셋을 사용하여 PolyCollection 을 생성하는 것입니다. PolyCollection 을 사용하여 곡선을 색상으로 채웁니다. 또한 offset_transform 을 사용하여 곡선의 위치를 설정합니다.
오프셋을 사용하여 RegularPolyCollection 생성
col = collections.RegularPolyCollection(
7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)
ax3.add_collection(col, autolim=True)
ax3.autoscale_view()
ax3.set_title('RegularPolyCollection using offsets')
여섯 번째 단계는 오프셋을 사용하여 RegularPolyCollection 을 생성하는 것입니다. RegularPolyCollection 을 사용하여 오프셋이 있는 정다각형을 생성합니다. 또한 offset_transform 을 사용하여 다각형의 위치를 설정합니다.
연속적인 데이터 오프셋 생성
## Simulate a series of ocean current profiles, successively
## offset by 0.1 m/s so that they form what is sometimes called
## a "waterfall" plot or a "stagger" plot.
nverts = 60
ncurves = 20
offs = (0.1, 0.0)
yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0.2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0.4) * 0.5
segs = []
for i in range(ncurves):
xxx = xx + 0.02*rs.randn(nverts)
curve = np.column_stack([xxx, yy * 100])
segs.append(curve)
col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()
ax4.set_title('Successive data offsets')
ax4.set_xlabel('Zonal velocity component (m/s)')
ax4.set_ylabel('Depth (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])
일곱 번째 단계는 연속적인 데이터 오프셋을 생성하는 것입니다. LineCollection 을 사용하여 연속적인 오프셋이 있는 곡선을 생성합니다.
요약
이 튜토리얼에서는 Matplotlib collection 을 사용하여 시각화를 만드는 방법을 보여드렸습니다. LineCollection, PolyCollection 및 RegularPolyCollection 을 사용하여 곡선과 다각형을 만드는 방법을 배웠습니다. 또한 LineCollection 및 PolyCollection 의 offsets 및 offset_transform 키워드 인수를 사용하여 나선의 위치를 설정하는 방법도 배웠습니다.