在畫圖時,經(jīng)常會遇到文字等圖形元素超過了圖片邊框,顯示不全的問題,比如以下代碼 >>> plt.scatter(x= np.random.randn(10), y=np.random.randn(10),s=40 * np.arange(10),c=np.random.randn(10)) 輸出結(jié)果如下 遇到這種問題,我們肯定想著說調(diào)節(jié)對應元素的屬性,使其適合圖片的大小,在這里例子中,我們通過調(diào)節(jié)字體大小fontsize可以來達到目的。這種方法要求我們對圖形元素的屬性進行精確控制,具體到一個確定的數(shù)值。 當然,我們可以不斷調(diào)整屬性的值,直到效果滿意為止,但是在matplotlib中,為我們提供了更好的解決方法,通過constrained和tight layout兩種布局,可以使得圖形元素進行一定程度的自適應 1. constrained layout 用法如下 >>> plt.subplots(constrained_layout=True) 輸出結(jié)果如下 2. tight layout 用法如下 >>> plt.scatter(x= np.random.randn(10), y=np.random.randn(10),s=40 * np.arange(10),c=np.random.randn(10)) 輸出結(jié)果如下 只需要簡單的應用這兩種布局,matplotlib就會自動調(diào)整圖形元素,使其恰當?shù)娘@示,需要注意的是,這種黑魔法并不是任何情況下都可以奏效,只有當調(diào)整標題,圖例,colorbar等常見圖形元素時可以。對于復雜圖形的布局問題,還是需要自己來精確控制圖形元素的位置。 ·end· |
|