如何創建軸的網格狀組合。
subplots()
也許用於創建圖形和軸的主要功能。它也類似於matplotlib.pyplot.subplot()
,但是會立即在圖形上創建並放置所有軸。
GridSpec
指定將放置子圖的網格的幾何形狀。需要設置網格的行數和列數。可選地,可以調整子圖布局參數(例如,左,右等)。
SubplotSpec
指定子圖在給定GridSpec中的位置。
subplot2grid()
類似於的輔助函數 subplot()
,但使用基於0的索引,並讓子圖占據多個單元。本教程未涵蓋此功能。
基本快速入門指南
前兩個示例顯示了如何使用subplots()
和來創建基本的2×2網格gridspec
。
使用subplots()
非常簡單。它返回一個Figure
實例和一個Axes
對象數組 。
對於像這樣的簡單用例,gridspec
可能過於冗長。您必須分別創建圖形和GridSpec
實例,然后將gridspec實例的元素傳遞給 add_subplot()
方法以創建軸對象。
通常,以與numpy數組相同的方式訪問gridspec的元素。
gridspec的功能在於能夠創建跨越行和列的子圖
請注意,我們還使用了便捷方法Figure.add_gridspec
代替gridspec.GridSpec
,從而有可能為用戶節省了導入時間,並使名稱空間更整潔。
gridspec
通過兩種方法創建不同寬度的子圖也是必不可少的。
此處顯示的方法與上述方法類似,並初始化了統一的網格規范,然后使用numpy索引和切片為給定的子圖分配多個“單元”。
另一種選擇是使用width_ratios
和height_ratios
參數。這些關鍵字參數是數字列表。注意,絕對值是沒有意義的,只有它們的相對比率才重要。
這意味着,等於 等寬的數字范圍內。
學會使用width_ratios
並且height_ratios
特別有用,因為頂級函數subplots()
在gridspec_kw
參數中接受它們。
對於這個問題,任何一個參數接受 GridSpec
能夠傳遞給 subplots()
通過gridspec_kw
參數。
本示例在不直接使用gridspec實例的情況下重新創建了上一個圖形。
掃盲 enumerate 函數:
enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。
該subplots
和get_gridspec
方法可以結合起來,因為它有時是使大多數使用的次要情節的更方便subplots
,然后刪除一些並結合它們。
在這里,我們創建一個布局,其中最后一列的底部兩個軸組合在一起。
精細調整Gridspec布局
顯式使用GridSpec時,可以調整從GridSpec創建的子圖的布局參數。請注意,此選項與子圖大小不兼容,
constrained_layout
或者 Figure.tight_layout
兩者都調整子圖大小以填充圖形。
GridSpec使用SubplotSpec
您可以從創建GridSpec SubplotSpec
,在這種情況下,其布局參數設置為給定SubplotSpec的位置。
一個復雜的嵌套GridSpec使用SubplotSpec
這是嵌套GridSpec的一個更復雜的示例,其中通過在每個內部3x3網格中隱藏適當的刺,在外部4x4網格的每個單元周圍放置一個框。
掃盲product函數:
product
用於求多個可迭代對象的笛卡爾積(Cartesian Product),它跟嵌套的 for 循環等價.即:
product(A, B)
和 ((x,y) for x in A for y in B)一樣.