메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
아티스트 테스트 #
각 Matplotlib 기본 아티스트 유형으로 단위 지원을 테스트합니다.
축은 단위 변환을 처리하고 아티스트는 축 부모에 대한 포인터를 유지합니다. 아티스트를 단위 데이터와 함께 사용하려면 축 인스턴스로 아티스트를 초기화해야 합니다. 그렇지 않으면 아티스트가 단위를 스칼라로 변환하는 방법을 모릅니다.
이 예에는 다음이 필요합니다.basic_units.py
import random
import matplotlib.lines as lines
import matplotlib.patches as patches
import matplotlib.text as text
import matplotlib.collections as collections
from basic_units import cm, inch
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.xaxis.set_units(cm)
ax.yaxis.set_units(cm)
# Fixing random state for reproducibility
np.random.seed(19680801)
if 0:
# test a line collection
# Not supported at present.
verts = []
for i in range(10):
# a random line segment in inches
verts.append(zip(*inch*10*np.random.rand(2, random.randint(2, 15))))
lc = collections.LineCollection(verts, axes=ax)
ax.add_collection(lc)
# test a plain-ol-line
line = lines.Line2D([0*cm, 1.5*cm], [0*cm, 2.5*cm],
lw=2, color='black', axes=ax)
ax.add_line(line)
if 0:
# test a patch
# Not supported at present.
rect = patches.Rectangle((1*cm, 1*cm), width=5*cm, height=2*cm,
alpha=0.2, axes=ax)
ax.add_patch(rect)
t = text.Text(3*cm, 2.5*cm, 'text label', ha='left', va='bottom', axes=ax)
ax.add_artist(t)
ax.set_xlim(-1*cm, 10*cm)
ax.set_ylim(-1*cm, 10*cm)
# ax.xaxis.set_units(inch)
ax.grid(True)
ax.set_title("Artists with units")
plt.show()