"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Matplotlib에서 범례 절단을 방지하고 데이터 가시성을 유지하는 방법은 무엇입니까?

Matplotlib에서 범례 절단을 방지하고 데이터 가시성을 유지하는 방법은 무엇입니까?

2024-11-02에 게시됨
검색:699

How to Prevent Cut-off Legend in Matplotlib and Maintain Data Visibility?

그림 상자 크기를 조정하여 Matplotlib에서 잘린 범례 처리

Matplotlib에서 범례를 플롯 축 밖으로 이동하면 그림 상자에 의해 잘리는 경우가 많습니다. 축 축소가 해결책으로 제안되었지만 특히 수많은 범례 항목이 포함된 복잡한 플롯을 표시할 때 데이터 가시성이 감소합니다.

Matplotlib 메일링 목록에 대한 Benjamin Root의 응답에서 강조된 것처럼 보다 효과적인 접근 방식은 다음과 같습니다. 범례를 추가 아티스트로 통합하기 위해 savefig 호출 수정:

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')

이 방법은 유사합니다. Tight_layout을 사용하면 savefig가 그림 상자 크기를 계산할 때 범례를 고려할 수 있습니다.

다음 향상된 코드 샘플은 솔루션을 보여줍니다.

import matplotlib.pyplot as plt
import numpy as np

plt.gcf().clear()
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')

이제 범례를 수용할 수 있도록 그림 상자 크기를 동적으로 조정하여 데이터 가시성을 유지하면서 잘림을 방지합니다.

릴리스 선언문 이 글은 1729223656에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3