調整圖形框大小以適應擴展圖例
在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中文網其他相關文章!