[英]How to plot contourf colorbar in different subplot - 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
關鍵字參數,該參數允許您指定將在其上繪制cax
的axes
對象。
在您的情況下,您可以將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_ratios
和width_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.