메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
기본 텍스트 회전 데모 #
Matplotlib이 기본적으로 텍스트 레이아웃을 수행하는 방식은 일부에게는 직관적이지 않으므로 이 예제는 좀 더 명확하게 하기 위해 설계되었습니다.
텍스트는 테두리 상자(잉크 사각형을 둘러싸는 사각형 상자)에 따라 정렬됩니다. 작업 순서는 회전 후 정렬입니다. 기본적으로 텍스트는 (x, y) 위치의 중앙에 있고 이 지점을 중심으로 회전한 다음 회전된 텍스트의 경계 상자에 따라 정렬됩니다.
따라서 왼쪽 아래 정렬을 지정하면 회전된 텍스트 경계 상자의 왼쪽 아래가 텍스트의 (x, y) 좌표에 있게 됩니다.
그러나 그림은 천 단어의 가치가 있습니다!
import matplotlib.pyplot as plt
import numpy as np
def addtext(ax, props):
ax.text(0.5, 0.5, 'text 0', props, rotation=0)
ax.text(1.5, 0.5, 'text 45', props, rotation=45)
ax.text(2.5, 0.5, 'text 135', props, rotation=135)
ax.text(3.5, 0.5, 'text 225', props, rotation=225)
ax.text(4.5, 0.5, 'text -45', props, rotation=-45)
for x in range(0, 5):
ax.scatter(x + 0.5, 0.5, color='r', alpha=0.5)
ax.set_yticks([0, .5, 1])
ax.set_xticks(np.arange(0, 5.1, 0.5))
ax.set_xlim(0, 5)
ax.grid(True)
# the text bounding box
bbox = {'fc': '0.8', 'pad': 0}
fig, axs = plt.subplots(2, 1, sharex=True)
addtext(axs[0], {'ha': 'center', 'va': 'center', 'bbox': bbox})
axs[0].set_ylabel('center / center')
addtext(axs[1], {'ha': 'left', 'va': 'bottom', 'bbox': bbox})
axs[1].set_ylabel('left / bottom')
plt.show()