簡體   English   中英

如何在不同的子圖中繪制pcolor colorbar - matplotlib

[英]How to plot pcolor colorbar in a different subplot - matplotlib

我試圖在不同的子圖中分割我的圖。我想要實現的是在不同的子圖中為子圖放置一個顏色條。 現在我正在使用:

# first graph
axes = plt.subplot2grid((4, 2), (0, 0), rowspan=3)
pc = plt.pcolor(df1, cmap='jet')

# second graph
axes = plt.subplot2grid((4, 2), (3, 0))
plt.pcolor(df2, cmap='Greys')

# colorbar
plt.subplot2grid((4, 2), (0, 1), rowspan=3)
plt.colorbar(pc) 

但結果如下(注意留在顏色條上的不需要的空圖): 錯誤的圖表

如果沒有左圖,我該怎么辦才能打印彩條?

謝謝

colorbar()接受一個cax關鍵字參數,該參數允許您指定將在其上繪制caxaxes對象。

在您的情況下,您可以將colorbar調用更改為以下內容:

# colorbar
axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
plt.colorbar(pc, cax=axes)

這將占用subplot2grid給出的整個空間; 你可以通過讓主軸占據比色條軸更多的列,或通過明確設置gridspec來調整它更合理。 例如,使用以下內容可能更容易調整您的數字:

from matplotlib import gridspec
gs = gridspec.GridSpec(2, 2, height_ratios=(3, 1), width_ratios=(9, 1))

# first graph
axes = plt.subplot(gs[0,0])
pc = plt.pcolor(df1, cmap='jet')

# second graph
axes = plt.subplot(gs[1,0])
plt.pcolor(df2, cmap='Greys')

# colorbar
axes = plt.subplot(gs[0,1])
plt.colorbar(pc, cax=axes)

然后你可以根據自己的喜好改變height_ratioswidth_ratios

我相信你應該使用ax而不是cax

# colorbar
axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
plt.colorbar(pc, ax=axes)

暫無
暫無

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

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