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')
이제 범례에 맞게 그림 상자 크기를 동적으로 조정하여 데이터 가시성을 유지하면서 잘림을 방지합니다.
위 내용은 Matplotlib에서 범례 절단을 방지하고 데이터 가시성을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!