확장 범례를 수용하기 위해 그림 상자 크기 조정
Matplotlib에서 범례를 축 밖으로 이동할 때 범례가 발생하는 문제가 발생합니다. 그림 상자에 의해 잘릴 수 있습니다. 이 문제는 범례가 그림 영역의 경계를 넘어 확장될 때 발생합니다. 전통적으로 더 큰 범례를 수용하기 위해 축을 조정하는 것이 권장되는 솔루션이었지만, 이로 인해 데이터 크기가 줄어들어 해석이 더 어려워질 수 있습니다.
그림 상자의 동적 크기 조정
이 문제를 해결하기 위해 제안된 솔루션은 데이터 크기를 변경하지 않고 확장 범례를 수용할 수 있도록 그림 상자의 크기를 동적으로 조정하는 것입니다. 이 동작은 R 및 LaTeX에서 관찰되지만 Python에서는 즉시 나타나지 않습니다.
그림 상자의 크기를 동적으로 조정하는 코드
이 동적 크기 조정을 수행하기 위해 제안되는 코드는 다음과 같습니다. 다음은 다음과 같습니다.
<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
이 코드에서 lgd는 범례 개체를 나타냅니다. bbox_extra_artists=(lgd,)를 지정하면 savefig가 범례에 맞게 그림 상자를 동적으로 조정할 수 있습니다.
복잡한 범례의 예
다음은 다음의 예입니다. 복잡한 범례:
<code class="python">import matplotlib.pyplot as plt import numpy as np # Create figure and subplot fig = plt.figure(1) ax = fig.add_subplot(111) # Plot data and create legend 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') lgd = ax.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1)) # Add arbitrary text for testing text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes) # Set title and grid ax.set_title("Trigonometry") ax.grid('on') # Save figure with dynamic resizing fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')</code>
이 코드는 축 영역을 넘어 확장되는 복잡한 범례가 있는 플롯을 생성합니다. bbox_extra_artists 매개변수는 범례를 수용하도록 그림 상자를 조정하여 전체 범례가 표시되도록 합니다.
참고:
2019년부터 동적 크기 조정을 위한 코드는 다음과 같습니다. 쉽게 한. 이제 다음 명령으로 충분합니다:
<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>
위 내용은 Python에서 확장 범례에 맞게 그림 상자의 크기를 동적으로 조정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!