bbox_to_anchor 매개변수를 사용하여 Matplotlib 및 Seaborn에서 플롯 외부에 범례 배치

2024-05-17

Matplotlib, Seaborn을 사용하여 플롯 외부에 범례를 배치하는 방법 (Python)

다음은 matplotlibseaborn에서 범례를 플롯 외부로 배치하는 두 가지 일반적인 방법입니다.

loc 매개변수 사용:

matplotliblegend() 함수는 loc 키워드 인수를 사용하여 범례의 위치를 명시적으로 지정할 수 있습니다. 다음은 범례를 오른쪽 상단 외부에 배치하는 예제입니다.

import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례 위치 설정
plt.legend(loc='upper right', bbox_to_anchor=(1.35, 1))

# 그래프 표시
plt.show()

bbox_to_anchor 키워드 인수를 사용하면 범례의 정확한 위치를 더욱 세밀하게 제어할 수 있습니다.

이 매개변수는 (x, y) 튜플 형식으로 값을 받으며, 범례의 왼쪽 상단 모서리가 플롯의 해당 지점에 배치되도록 합니다.

다음은 범례를 오른쪽 아래 외부에 배치하는 예제입니다.

import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례 위치 설정
plt.legend(bbox_to_anchor=(1.05, -0.1))

# 그래프 표시
plt.show()

Seaborn 기반 범례 설정:

Seaborn은 기본적으로 matplotlib 범례 기능을 활용합니다. 따라서 위에서 설명한 locbbox_to_anchor 키워드 인수를 사용하여 범례를 배치할 수 있습니다.

import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례 위치 설정 (위와 동일)
plt.legend(loc='upper right', bbox_to_anchor=(1.35, 1))

# 그래프 표시
plt.show()

참고:

  • 범례를 배치할 때 플롯 영역과 충돌하지 않도록 주의해야 합니다.
  • 범례의 위치를 조정하면 그래프의 전체적인 레이아웃 및 가독성에 영향을 미칠 수 있으므로 신중하게 선택해야 합니다.

이 외에도 범례를 플롯 외부에 배치하는 다른 방법들이 있습니다.

특정 상황에 맞는 최적의 방법을 선택하려면 Matplotlib 및 Seaborn 문서를 참고하십시오.




예제 코드: Matplotlib 및 Seaborn을 사용하여 플롯 외부에 범례 배치

예제 1: loc 매개변수 사용

import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례를 오른쪽 상단 외부에 배치
plt.legend(loc='upper right', bbox_to_anchor=(1.35, 1))

# 그래프 표시
plt.show()

설명:

  • 이 코드는 sns.load_dataset() 함수를 사용하여 'tips' 데이터 세트를 로드합니다.
  • sns.barplot() 함수를 사용하여 "day" 열을 기준으로 "tip" 열의 값을 막대 그래프로 시각화합니다.
  • plt.legend() 함수를 사용하여 범례를 생성하고 loc 키워드 인수를 'upper right'로 설정하여 범례를 오른쪽 상단에 배치합니다.
  • bbox_to_anchor 키워드 인수를 사용하여 범례의 정확한 위치를 조정합니다.

예제 2: bbox_to_anchor 매개변수 사용

import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례를 오른쪽 아래 외부에 배치
plt.legend(bbox_to_anchor=(1.05, -0.1))

# 그래프 표시
plt.show()
  • 이 코드는 예제 1과 동일한 데이터 세트와 그래프를 생성합니다.
  • plt.legend() 함수에서 bbox_to_anchor 키워드 인수를 사용하여 범례를 오른쪽 아래 외부에 배치합니다.
  • 튜플 (1.05, -0.1)은 범례의 왼쪽 상단 모서리가 플롯의 오른쪽 아래 모서리에서 0.05 범위 밖에 위치하도록 합니다.

추가 예제:

  • 다양한 범례 위치를 시도하고 locbbox_to_anchor 매개변수의 작동 방식을 확인하십시오.
  • 범례의 스타일을 추가로 사용자 정의하려면 legend() 함수의 다른 키워드 인수를 탐색하십시오.



Matplotlib 및 Seaborn을 사용하여 플롯 외부에 범례를 배치하는 대체 방법

ax.add_artist 함수를 사용하여 범례를 별도의 아티스트로 추가한 다음 원하는 위치에 배치할 수 있습니다.

다음은 범례를 오른쪽 상단 외부에 배치하는 예제입니다.

import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 생성
sns.barplot(x = "day", y = "tip", data=data)

# 범례 생성
legend = plt.legend()

# 범례를 오른쪽 상단 외부에 배치
ax.add_artist(legend, anchor=(1.35, 1))

# 그래프 표시
plt.show()

gridspec 모듈을 사용하여 별도의 그리드를 만들고 범례를 해당 그리드에 배치할 수 있습니다.

import matplotlib.pyplot as plt
import seaborn as sns
from gridspec import GridSpec

# 데이터 생성
data = sns.load_dataset('tips')

# 그래프 및 범례 생성을 위한 그리드 설정
gs = GridSpec(1, 2, width_ratios=[3, 1])
fig = plt.figure(figsize=(10, 6))

# 그래프 생성
ax = plt.subplot(gs[0])
sns.barplot(x = "day", y = "tip", data=data, ax=ax)

# 범례 생성 및 배치
ax_legend = plt.subplot(gs[1])
legend = ax.legend()
ax_legend.add_artist(legend)
ax_legend.axis('off')

# 그래프 표시
plt.show()

сторонние библиотеки 사용:

mpld3 또는 plotly와 같은 сторонние 라이브러리를 사용하여 더 많은 제어 기능과 상호 작용 기능을 갖춘 범례를 만들 수 있습니다.

참고:

  • 위에 제시된 방법은 모두 플롯 외부에 범례를 배치하는 데 유효하지만 각 방법마다 장단점이 있습니다.
  • 특정 상황에 맞는 최적의 방법을 선택하려면 코드를 직접 실험하고 결과를 비교하는 것이 좋습니다.
  • 범례를 사용자 정의하는 방법에 대한 자세한 내용은 Matplotlib 및 Seaborn 문서를 참조하십시오.

python matplotlib seaborn


파이썬에서 객체 이름 앞에 단일 및 이중 언더스코어의 의미: 궁금증 해결!

단일 언더스코어 (_):사용자 정의 클래스 및 모듈 내부에서 사용되지 않는 개인용 변수 또는 함수를 나타냅니다.이러한 변수 및 함수는 클래스 외부에서 직접 접근할 수 없지만, 클래스 내부에서 다른 메서드나 함수에서 사용될 수 있습니다...


파이썬에서 NumPy를 사용하여 자연 로그 계산하기

방법 1: np. log() 함수 사용하기np. log() 함수는 NumPy에서 제공하는 자연 로그 계산 함수입니다. 배열에 적용하면 각 요소의 자연 로그를 반환합니다.np. log1p() 함수는 1을 더한 배열의 모든 요소에 대한 자연 로그를 계산합니다...


Python, SQLAlchemy, Flask-SQLAlchemy를 사용한 대소문자 구분 없는 Flask-SQLAlchemy 쿼리

다음은 Python, SQLAlchemy, Flask-SQLAlchemy를 사용하여 대소문자 구분 없는 Flask-SQLAlchemy 쿼리를 수행하는 방법에 대한 몇 가지 예제입니다.SQLAlchemy Core를 사용하여 대소문자 구분 없는 쿼리 수행...


Pandas 프로그래밍: SettingWithCopyWarning 예방하기

이는 데이터 손실로 이어질 수 있으므로 Pandas는 이러한 상황을 경고하여 개발자가 의도적으로 데이터프레임을 수정하려는지 확인하도록 합니다.SettingWithCopyWarning은 다음과 같은 경우 발생할 수 있습니다...


[이거 어떡하지] RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling cublasCreate(handle) 원인 및 해결법(pytorch)

이 오류는 다음과 같은 몇 가지 이유로 발생할 수 있습니다.GPU 메모리 부족: 작업에 필요한 메모리가 GPU에 충분하지 않은 경우 이 오류가 발생할 수 있습니다. 다른 작업에서 GPU 메모리를 사용하고 있거나 사용 가능한 메모리 양이 작은 경우 이 문제가 발생할 수 있습니다...


python matplotlib seaborn