簡體   English   中英

如何使用 Matplotlib 在 Python 中創建垂直子圖?

[英]How to create vertical subplot in Python using Matplotlib?

我在 python 中有 2 個圖,當按照代碼的前兩部分分別繪制它們時,它正確顯示了前 2 個圖。 但是,當嘗試將 2 個圖的子圖制作成彼此下方的子圖時,下圖由 python 渲染。我在這里做錯了什么?

K1 = 1
K2 = [[0. 0. 0.]
      [0. 3. 0.]
      [0. 0. 0.]]
# visualizing the source function
plt.clf()
plt.imshow([[K1, K1],
            [K1, K1]], cmap='viridis')
plt.colorbar()
plt.show()

plt.clf()
plt.imshow(K2, cmap='viridis')
plt.colorbar()
plt.show()

# visualizing the source function
plt.clf()
plt.imshow([[K1, K1],
            [K1, K1]], cmap='viridis')
plt.colorbar()
plt.subplot(2, 1, 1)


plt.clf()
plt.imshow(K2, cmap='viridis')
plt.colorbar()
plt.subplot(2, 1, 2)
plt.show()

K1的圖表

K2的圖表

plt.subplot() function 需要位於imshow()之上。 此外,不需要clf() ,它僅在您要清除當前圖形時使用。

選項 1 (基於狀態):

plt.figure(figsize=(10, 10))
plt.subplot(2, 1, 2)
plt.imshow([[K1, K1],
            [K1, K1]], cmap='viridis')
plt.colorbar()
plt.subplot(2, 1, 1)
plt.imshow(K2, cmap='viridis')
plt.colorbar()
plt.show()

選項 2 (面向對象):

fig, ax = plt.subplots(2, 1, figsize=(10, 10))
sub_1 = ax[0].imshow([[K1, K1],
                      [K1, K1]], cmap='viridis')
fig.colorbar(sub_1, ax=ax[0])
sub_2 = ax[1].imshow(K2, cmap='viridis')
fig.colorbar(sub_2, ax=ax[1])
plt.show()

output:

在此處輸入圖像描述

暫無
暫無

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

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