調整圖形框大小以適應擴展圖例
在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