Matplotlib 플롯에서 텍스트 회전

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Matplotlib 에서 텍스트 객체를 화면 좌표계가 아닌 플롯의 선 또는 객체를 기준으로 회전하는 방법을 보여줍니다. 이 기술은 플롯의 특정 대상과 관련하여 텍스트를 회전하려는 경우 유용할 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

대각선 그리기

먼저, Matplotlib 의 plot() 함수를 사용하여 45 도 각도의 대각선을 그립니다.

fig, ax = plt.subplots()

## Plot diagonal line (45 degrees)
h = ax.plot(range(0, 10), range(0, 10))

플롯의 제한 조정

다음으로, 화면에서 볼 때 대각선이 더 이상 45 도 각도가 아니도록 플롯의 제한을 조정합니다. 이렇게 하면 화면 좌표계가 아닌 선을 기준으로 텍스트를 회전해야 하는 시나리오가 생성됩니다.

## set limits so that it no longer looks on screen to be 45 degrees
ax.set_xlim([-10, 20])

텍스트 위치 및 회전 각도 정의

이제 그림에 텍스트를 표시할 위치와 사용할 회전 각도를 정의합니다.

## Locations to plot text
l1 = np.array((1, 1))
l2 = np.array((5, 5))

## Rotate angle
angle = 45

올바른 회전 없이 텍스트 플롯

이제 선의 회전을 고려하지 않고 지정된 위치에 텍스트를 플롯합니다. 이렇게 하면 텍스트가 45 도 각도로 회전하게 되는데, 이는 우리가 원하는 바가 아닙니다.

## Plot text
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor')

올바른 회전으로 텍스트 플롯

마지막으로, 선의 회전을 고려하여 지정된 위치에 텍스트를 플롯합니다. 이렇게 하면 텍스트가 선에 상대적으로 올바른 각도로 회전하게 됩니다.

## Plot text
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor',
              transform_rotates_text=True)

그림 표시

두 세트의 플롯된 텍스트 간의 차이점을 확인하기 위해 그림을 표시합니다.

plt.show()

요약

이 Lab 에서는 Matplotlib 에서 선 또는 플롯의 객체에 상대적으로 텍스트 객체를 회전하는 방법을 배웠습니다. transform_rotates_text 매개변수를 사용하여 텍스트가 화면 좌표계가 아닌 선과 관련하여 올바른 각도로 회전하도록 할 수 있었습니다.