在matplotlib中改變figure的布局和大小實(shí)例
以下來(lái)自Stack Overflow
從上面我們可以很清晰的看出應(yīng)該如何使用matplotlib的figure方法。
補(bǔ)充知識(shí):matplotlib 設(shè)置圖形大小時(shí) figsize 與 dpi 的關(guān)系
matplotlib 中設(shè)置圖形大小的語(yǔ)句如下:
fig = plt.figure(figsize=(a, b), dpi=dpi)
其中:
figsize 設(shè)置圖形的大小,a 為圖形的寬, b 為圖形的高,單位為英寸
dpi 為設(shè)置圖形每英寸的點(diǎn)數(shù)
則此時(shí)圖形的像素為:
px, py = a*dpi, b*dpi # pixels
# e.g.
# 6.4 inches * 100 dpi = 640 pixels
也就是說(shuō),同一像素尺寸的圖形(比如 1200 * 600)可以有任意種不同的組合,比如:
figsize=(15,7.5), dpi= 80
figsize=(12,6) , dpi=100
figsize=( 8,4) , dpi=150
figsize=( 6,3) , dpi=200
etc.
但這些不同的組合,有什么區(qū)別呢?這取決于圖中元素的大小。
線條,標(biāo)記,文本等大多數(shù)元素都有以磅為單位的大小。Matplotlib 中 每英寸點(diǎn)數(shù)(ppi)為72,則寬度為 1 點(diǎn)的線將為 1/72 英寸寬,使用 fontsize 12 點(diǎn)的文本將是 12/72 寸高。
為了便于說(shuō)明,用 matplotlib繪制相應(yīng)的圖形,如 表1 所示。
如果以英寸為單位更改圖形大小,而 dpi 不變,較大的圖形仍具有相同的元素大小。因此,改變圖形尺寸就像拿一張不同尺寸的紙張一樣,這樣做當(dāng)然不會(huì)改變用同一筆繪制的線條的寬度。通過(guò)表 1 中的圖形2, 4, 6 的對(duì)比,可以明顯的看出來(lái)這一點(diǎn)。
另一方面,更改dpi會(huì)縮放元素。在72 dpi時(shí),1 寬度的線是 1 像素。在144 dpi時(shí),這條線就是 2 像素。
span>因此,更大的dpi就像放大鏡一樣。所有元素都通過(guò)鏡頭的放大倍數(shù)進(jìn)行縮放。 通過(guò)表 1 中的圖形 1 3 5 的對(duì)比,可以看出這一點(diǎn)。
綜上:
圖形尺寸(figsize)確定圖形的大?。ㄒ杂⒋鐬閱挝唬?。 這給出了軸(和其他元素)在圖中的空間量。 較大的圖形尺寸將允許顯示更長(zhǎng)的文本,更多的軸或更多的標(biāo)記標(biāo)簽(表1中圖形3與圖形4,圖形5與圖形6的對(duì)比可看出,像素尺寸相同時(shí),圖形尺寸越大,所能容納的內(nèi)容越多)。
dpi 確定了圖形每英寸包含的像素?cái)?shù),圖形尺寸相同的情況下, dpi 越高,則圖像的清晰度越高(表1中 1,3,5 對(duì)比可看出)
以上這篇在matplotlib中改變figure的布局和大小實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05tensorflow-gpu安裝的常見(jiàn)問(wèn)題及解決方案
這篇文章主要介紹了tensorflow-gpu安裝的常見(jiàn)問(wèn)題及解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧,需要的朋友可以參考下2020-01-01關(guān)于Python Socket編程的要點(diǎn)詳解
Socket是網(wǎng)絡(luò)編程的一個(gè)抽象概念,通常我們用一個(gè)Socket表示“打開(kāi)了一個(gè)網(wǎng)絡(luò)鏈接”,而打開(kāi)一個(gè)Socket需要知道目標(biāo)計(jì)算機(jī)的IP地址和端口號(hào),再指定協(xié)議類型即可,這篇文章主要給大家介紹了關(guān)于Python Socket編程的相關(guān)資料,需要的朋友可以參考下2021-08-08Python中*args和**kwargs的區(qū)別詳解
這篇文章主要介紹了Python中*args和**kwargs的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09詳解如何使用Python實(shí)現(xiàn)復(fù)制粘貼的功能
pandas?里面有一個(gè)?pd.read_clipboard?函數(shù),可以根據(jù)你復(fù)制的內(nèi)容生成DataFrame。本文就利用這個(gè)函數(shù)實(shí)現(xiàn)復(fù)制粘貼的功能,感興趣的可以了解一下2023-01-01python實(shí)現(xiàn)讀取命令行參數(shù)的方法
這篇文章主要介紹了python實(shí)現(xiàn)讀取命令行參數(shù)的方法,涉及Python中sys模塊的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05Python的基礎(chǔ)語(yǔ)法和輸入輸出函數(shù)你都了解嗎
這篇文章主要為大家詳細(xì)介紹了Python的基礎(chǔ)語(yǔ)法和輸入輸出函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02