動態調整圖例的圖形框大小
在Matplotlib 中將圖例放置在繪圖軸之外時,它們可以被圖形框截斷。當圖例長度超過軸大小時,就會出現此問題。
避免軸收縮
與其他解決方案不同,避免軸收縮是維持資料可見性的首選。縮小軸會降低資料可讀性,尤其是在處理具有大量圖例的複雜繪圖時。
動態圖形框擴展
要動態擴展圖形框以容納圖例,將savefig 呼叫調整為以下內容:
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
其中bbox_exboxdists在決定邊界框大小時考慮其他藝術家(在本例中為圖例)。
範例程式碼
以下程式碼產生圖例在軸外的圖,並使用bbox_extra_artists 自動調整圖形框的大小:
import matplotlib.pyplot as plt import numpy as np 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')
此程式碼產生圖例在軸外的圖,並且動態調整圖形框以適應圖例大小。
結論
透過使用 savefig 中的 bbox_extra_artists 參數,可以動態擴展圖形框以確保軸外的圖例不會被切斷。這種方法提供了一種方便有效的解決方案,並且沒有軸收縮的缺點。
以上是動態擴展外軸圖例的圖形框:一種解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!