사용자 정의 범례 구성

Beginner

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

소개

Python Matplotlib 라이브러리는 플롯에서 범례를 생성하고 사용자 정의하는 유연한 방법을 제공합니다. 범례는 플롯에 표시된 데이터를 명확하고 간결하게 설명하므로 모든 플롯의 필수 구성 요소입니다. 이 랩에서는 Matplotlib 객체를 사용하여 사용자 정의 범례를 구성하는 과정을 안내합니다.

VM 팁

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

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

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

선 그리기

이 단계에서는 Matplotlib 라이브러리를 사용하여 일련의 선을 그립니다. 먼저, NumPy 를 사용하여 몇 가지 임의의 데이터를 생성합니다. 다음으로, cycler 함수를 사용하여 색상 순환 (color cycle) 을 설정하여 색상 맵을 지정합니다. 마지막으로, plot 함수를 사용하여 데이터를 플롯하고 legend()를 호출하여 범례를 생성합니다.

import matplotlib.pyplot as plt
import numpy as np

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

## Create random data
N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T

## Set color cycle
cmap = plt.cm.coolwarm
plt.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))

## Plot data and generate legend
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend()

사용자 정의 범례 구성

이 단계에서는 Matplotlib 객체를 사용하여 사용자 정의 범례를 생성합니다. 먼저, matplotlib.lines 모듈에서 Line2D 클래스를 가져옵니다. 다음으로, 사용자 정의 색상, 너비 및 레이블 속성을 가진 Line2D 객체 목록을 생성합니다. 마지막으로, plot 함수를 사용하여 데이터를 다시 플롯하고 사용자 정의 선과 해당 레이블로 legend()를 호출합니다.

## Import Line2D class
from matplotlib.lines import Line2D

## Create custom lines
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
                Line2D([0], [0], color=cmap(.5), lw=4),
                Line2D([0], [0], color=cmap(1.), lw=4)]

## Plot data and generate custom legend
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])

다양한 Matplotlib 객체를 사용한 사용자 정의 범례 구성

이 단계에서는 Line2DPatch를 포함한 다양한 Matplotlib 객체를 사용하여 사용자 정의 범례를 생성합니다. 먼저, matplotlib.patches 모듈에서 Patch 클래스를 가져옵니다. 다음으로, 사용자 정의 속성을 가진 Line2DPatch 객체 목록을 생성합니다. 마지막으로, 사용자 정의 객체와 해당 레이블로 legend()를 호출합니다.

## Import Line2D and Patch classes
from matplotlib.lines import Line2D
from matplotlib.patches import Patch

## Create legend elements
legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),
                   Line2D([0], [0], marker='o', color='w', label='Scatter',
                          markerfacecolor='g', markersize=15),
                   Patch(facecolor='orange', edgecolor='r',
                         label='Color Patch')]

## Plot data and generate custom legend
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')

요약

이 랩에서는 Matplotlib 객체를 사용하여 사용자 정의 범례를 만드는 방법을 배웠습니다. 먼저 일련의 선을 플롯하고 기본 범례를 생성하는 것으로 시작했습니다. 다음으로, 사용자 정의 속성을 가진 Line2D 객체를 사용하여 사용자 정의 범례를 구성했습니다. 마지막으로, Line2DPatch를 포함한 다양한 Matplotlib 객체를 사용하여 사용자 정의 범례를 만들었습니다. 사용자 정의 범례를 사용함으로써 플롯에 표시된 데이터에 대한 명확하고 간결한 설명을 제공할 수 있습니다.