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, NumPy, Matplotlib 폰트 관리자, 그리고 mpl_toolkits.axes_grid1 에서 AnchoredDirectionArrows 와 같은 필요한 라이브러리를 가져와야 합니다. 이러한 라이브러리를 사용하여 앵커된 방향 화살표를 만들 것입니다.

import matplotlib.pyplot as plt
import numpy as np

import matplotlib.font_manager as fm
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDirectionArrows

플롯 생성

다음으로, NumPy 를 사용하여 간단한 플롯을 생성합니다. 이 플롯은 앵커된 방향 화살표의 배경 역할을 합니다.

## Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.imshow(np.random.random((10, 10)))

간단한 화살표 생성

이제 AnchoredDirectionArrows 클래스를 사용하여 간단한 앵커된 방향 화살표를 생성합니다. 이 화살표는 플롯에서 X 및 Y 방향을 나타냅니다.

## Simple example
simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y')
ax.add_artist(simple_arrow)

고대비 화살표 생성

다음으로, 고대비 앵커된 방향 화살표를 생성합니다. 이 화살표는 흰색 윤곽선과 검은색 채우기를 갖습니다.

high_contrast_part_1 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'w', 'fc': 'none', 'alpha': 1,
                                         'lw': 2}
                            )
ax.add_artist(high_contrast_part_1)

high_contrast_part_2 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'none', 'fc': 'k'},
                            text_props={'ec': 'w', 'fc': 'k', 'lw': 0.4}
                            )
ax.add_artist(high_contrast_part_2)

회전된 화살표 생성

이 단계에서는 회전된 앵커된 방향 화살표를 생성합니다. 이 화살표는 30 도 회전하며 세리프 폰트를 갖습니다.

fontprops = fm.FontProperties(family='serif')

rotated_arrow = AnchoredDirectionArrows(
                    ax.transAxes,
                    '30', '120',
                    loc='center',
                    color='w',
                    angle=30,
                    fontproperties=fontprops
                    )
ax.add_artist(rotated_arrow)

화살표 방향 변경

이 단계에서는 서로 다른 방향을 가리키는 세 개의 앵커된 방향 화살표를 생성합니다. 이 화살표들은 서로 다른 길이와 종횡비를 갖습니다.

a1 = AnchoredDirectionArrows(
        ax.transAxes, 'A', 'B', loc='lower center',
        length=-0.15,
        sep_x=0.03, sep_y=0.03,
        color='r'
    )
ax.add_artist(a1)

a2 = AnchoredDirectionArrows(
        ax.transAxes, 'A', ' B', loc='lower left',
        aspect_ratio=-1,
        sep_x=0.01, sep_y=-0.02,
        color='orange'
        )
ax.add_artist(a2)


a3 = AnchoredDirectionArrows(
        ax.transAxes, ' A', 'B', loc='lower right',
        length=-0.15,
        aspect_ratio=-1,
        sep_y=-0.1, sep_x=0.04,
        color='cyan'
        )
ax.add_artist(a3)

플롯 표시

마지막으로, 모든 앵커된 방향 화살표가 있는 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Matplotlib 에서 앵커된 방향 화살표를 만드는 방법을 배웠습니다. 간단한 화살표뿐만 아니라 고대비 및 회전된 화살표도 만들었습니다. 또한 화살표 방향과 종횡비를 변경하는 방법도 배웠습니다. 앵커된 방향 화살표는 플롯에서 특정 방향 또는 방향을 나타내는 데 유용합니다.