小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

matplotlib中的黑魔法:constrained和tight layout

 生信修煉手冊 2020-09-09

在畫圖時,經(jīng)常會遇到文字等圖形元素超過了圖片邊框,顯示不全的問題,比如以下代碼

>>> plt.scatter(x= np.random.randn(10), y=np.random.randn(10),s=40 * np.arange(10),c=np.random.randn(10))
>>> plt.title('title', fontsize = 60)
>>> plt.xlabel('xlabel', fontsize = 30)
>>> plt.ylabel('ylabel', fontsize = 30)
>>> plt.show()

輸出結(jié)果如下

遇到這種問題,我們肯定想著說調(diào)節(jié)對應元素的屬性,使其適合圖片的大小,在這里例子中,我們通過調(diào)節(jié)字體大小fontsize可以來達到目的。這種方法要求我們對圖形元素的屬性進行精確控制,具體到一個確定的數(shù)值。

當然,我們可以不斷調(diào)整屬性的值,直到效果滿意為止,但是在matplotlib中,為我們提供了更好的解決方法,通過constrained和tight layout兩種布局,可以使得圖形元素進行一定程度的自適應

1. constrained layout

用法如下

>>> plt.subplots(constrained_layout=True)
>>> plt.scatter(x= np.random.randn(10), y=np.random.randn(10),s=40 * np.arange(10),c=np.random.randn(10))
>>> plt.title('title', fontsize = 60)
>>> plt.xlabel('xlabel', fontsize = 30)
>>> plt.ylabel('ylabel', fontsize = 30)
>>> plt.show()

輸出結(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))
>>> plt.title('title', fontsize = 60)
>>> plt.xlabel('xlabel', fontsize = 30)
>>> plt.ylabel('ylabel', fontsize = 30)
>>> plt.tight_layout()
>>> plt.show()

輸出結(jié)果如下

只需要簡單的應用這兩種布局,matplotlib就會自動調(diào)整圖形元素,使其恰當?shù)娘@示,需要注意的是,這種黑魔法并不是任何情況下都可以奏效,只有當調(diào)整標題,圖例,colorbar等常見圖形元素時可以。對于復雜圖形的布局問題,還是需要自己來精確控制圖形元素的位置。

·end·

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多