> 백엔드 개발 > 파이썬 튜토리얼 > 축 외부 범례에 대한 동적으로 확장되는 그림 상자: 솔루션

축 외부 범례에 대한 동적으로 확장되는 그림 상자: 솔루션

Linda Hamilton
풀어 주다: 2024-10-18 12:04:03
원래의
243명이 탐색했습니다.

Dynamically Expanding Figure Box for Legends Outside Axes: A Solution

범례에 대한 그림 상자의 동적 크기 조정

Matplotlib에서 플롯 축 외부에 범례를 배치할 때 그림 상자에 의해 잘릴 수 있습니다. . 이 문제는 범례 길이가 축 크기를 초과할 때 발생합니다.

축 축소 방지

다른 솔루션과 달리 데이터 가시성을 유지하려면 축 축소를 방지하는 것이 좋습니다. 축을 축소하면 특히 광범위한 범례가 포함된 복잡한 플롯을 처리할 때 데이터 가독성이 떨어집니다.

동적 그림 상자 확장

범례를 수용하도록 그림 상자를 동적으로 확장하려면, savefig 호출을 다음과 같이 조정합니다.

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
로그인 후 복사

여기서 bbox_extra_artists는 경계 상자 크기를 결정할 때 추가 아티스트(이 경우 범례)를 고려합니다.

예제 코드

다음 코드는 축 외부에 범례가 있는 플롯을 생성하고 bbox_extra_artists를 사용하여 그림 상자의 크기를 자동으로 조정합니다.

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1))
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)
ax.set_title("Trigonometry")
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')
로그인 후 복사

이 코드는 축 외부에 범례가 있는 플롯을 생성합니다. 그림 상자는 범례 크기에 맞게 동적으로 조정됩니다.

결론

savefig의 bbox_extra_artists 매개변수를 활용하면 그림 상자를 동적으로 확장하여 다음을 보장할 수 있습니다. 축 외부의 범례는 잘리지 않습니다. 이 접근 방식은 축 축소의 단점 없이 편리하고 효과적인 솔루션을 제공합니다.

위 내용은 축 외부 범례에 대한 동적으로 확장되는 그림 상자: 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿