簡體   English   中英

如何迭代 matplotlib 子圖中的軸

[英]How to iterate axes in matplotlib subplots

我正在嘗試使用 matplotlib 為 5x2 子圖添加標題,我編寫的代碼如下:

fig, axs = plt.subplots(5, 2, figsize=(2*len(cols)+1, 2*len(rows)+1))
for i, ax in axs.flat:

    # print(sum_cols_level[i]) 
      ax.set_title(cols_level[i])

當我運行這個得到這個錯誤

類型錯誤:無法解包不可迭代的 AxesSubplot 對象

cols_level 是一個包含數字列表的列表 [1,2,3,4.. 等]

我也試過

for i, ax in enumerate(axs.flat):

並得到這個錯誤;

索引錯誤:索引 9 超出軸 0 的范圍,大小為 9

我真的很感激有人可以解釋 ax 是如何工作的以及為什么我會收到這些錯誤!

正確的解決方案實際上取決於cols_level是什么。 不過,問題似乎是您試圖解壓縮 1D numpy flatiter,因為它是 2D。 忘記使用enumerate

fig, axs = plt.subplots(2, 2, figsize=(6,8))
cols_level = [f'ax_{i}' for i in range(len(axs.flat))]
for i, ax in enumerate(axs.flat):
      ax.set_title(cols_level[i])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM