在Matplotlib 中,將圖例移到繪圖軸之外通常會導致其被圖形框截斷。雖然縮小軸被建議作為一種解決方案,但它會降低資料可見性,尤其是在呈現具有大量圖例條目的複雜繪圖時。
正如Benjamin Root 在Matplotlib 郵件列表上的回復中所強調的,更有效的方法包括修改savefig 呼叫以將圖例合併為額外的藝術家:
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
此方法與使用ight_layout 類似,使savefig 在計算圖形框大小時能夠考慮圖例。
以下增強的程式碼範例示範了解決方案:
import matplotlib.pyplot as plt import numpy as np plt.gcf().clear() x = np.arange(-2*np.pi, 2*np.pi, 0.1) fig = plt.figure(1) ax = fig.add_subplot(111) 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') handles, labels = ax.get_legend_handles_labels() lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1)) text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes) ax.set_title("Trigonometry") ax.grid('on') fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')
現在可以動態調整圖形框大小以適應圖例,防止其被截斷,同時保持資料可見性。
以上是如何防止Matplotlib中圖例被截斷並保持資料可見性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!