확장 범례를 수용하기 위해 그림 상자 크기 조정
Matplotlib에서 범례를 축 외부로 이동할 때 범례가 발생하는 문제가 발생합니다. 그림 상자에 의해 잘릴 수 있습니다. 이 문제는 범례가 그림 영역의 경계를 넘어 확장될 때 발생합니다. 전통적으로 더 큰 범례를 수용하기 위해 축을 조정하는 것이 권장되는 솔루션이었지만, 이로 인해 데이터 크기가 줄어들어 해석이 더 어려워질 수 있습니다.
그림 상자의 동적 크기 조정
이 문제를 해결하기 위해 제안된 솔루션은 데이터 크기를 변경하지 않고 확장 범례를 수용하도록 그림 상자의 크기를 동적으로 조정하는 것입니다. 이 동작은 R 및 LaTeX에서 관찰되었지만 Python에서는 즉시 나타나지 않았습니다.
그림 상자의 크기를 동적으로 조정하는 코드
이 동적 크기 조정을 수행하기 위해 제안되는 코드는 다음과 같습니다. 다음은 다음과 같습니다.
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
이 코드에서 lgd는 범례 개체를 나타냅니다. bbox_extra_artists=(lgd,)를 지정하면 savefig가 범례에 맞게 그림 상자를 동적으로 조정할 수 있습니다.
복잡한 범례의 예
다음은 다음과 같은 예입니다. 복잡한 범례:
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')
이 코드는 축 영역을 넘어 확장되는 복잡한 범례가 있는 플롯을 생성합니다. bbox_extra_artists 매개변수는 범례를 수용하도록 그림 상자를 조정하여 전체 범례가 표시되도록 합니다.
참고:
2019년부터 동적 크기 조정을 위한 코드는 다음과 같습니다. 쉽게 한. 이제 다음 명령으로 충분합니다:
plt.savefig('x.png', bbox_inches='tight')
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3