在Matplotlib 中將圖例放置在軸之外時,它有時會超出圖例圖形框的邊界,導致出現截止外觀。透過縮小軸來調整軸的大小並不是最佳解決方案,因為它會降低資料的可見度。
所需的解決方案是將圖形框的大小動態擴展為容納擴展的圖例。
要實現此目的,可以調整savefig 函數呼叫以包含bbox_extra_artists 參數:
<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
這框在這框計算其大小時應考慮額外的藝術家,例如圖例(lgd)。
使用此修改後的savefig 呼叫:
<code class="python">import matplotlib.pyplot as plt import numpy as np fig = plt.figure(1) ax = fig.add_subplot(111) ax.set_title("Trigonometry") 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)) ax.grid('on') fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
產生一個圖例,其圖例超出軸但容納在擴展的圖形框中:
Trigonometry 2 1 0 -1 -2 -4π -2π 0 2π 4π Inverse tan Cosine Sine
以上是如何動態擴展圖形框大小以適應 Matplotlib 中擴展的圖例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!