2016-11-09 11 views
0

Iはgridspec用いて4つのサブプロット(グローブ、インド太平洋および大西洋)を含む画像を生成した:matplotlibディバイダを使用してサブプロットを2つ以上の部分に分割するにはどうすればよいですか?

Iが浅いために異なる垂直スケールを使用できるように、次に分周器を使用して、それらのサブプロットのそれぞれ
from matplotlib import gridspec 

    fig = plt.figure() 
    gs = gridspec.GridSpec(2, 2) 

深い海:

from mpl_toolkits.axes_grid1 import make_axes_locatable 

    axMain = plt.subplot(gs[0]) 
    plt.sca(axMain) 
    cf = axMain.contourf(...) 

    divider = make_axes_locatable(axMain) 
    axShallow = divider.append_axes("top", size="100%", pad=0.1, sharex=axMain) 
    axShallow.contourf(...) 

enter image description here

私は各LATITUDの積算値を示し、各サブプロット(他の二つの上すなわち第三のプロット)の先頭に余分な線グラフを追加します2000mの全体の深さ(すなわち、この第3のプロットは、その下の他の2つのx軸を共有する)。

私は3回目に各サブプロットをどのように分割するのか分かりませんでした。

答えて

1

make_axes_locatableを使用して軸を数回に分割することは完全に可能です。 divider.append_axes(..)に2番目(または3番目など)の時間を呼ぶだけです。
例を示します。

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib import gridspec 
from mpl_toolkits.axes_grid1 import make_axes_locatable 

fig = plt.figure() 
gs = gridspec.GridSpec(2, 2) 

X, Y = np.meshgrid(np.linspace(0,100, num=101), np.linspace(0,100, num=101)) 
f = lambda x, y: np.sin(x/10.)+y/100. 


axMain = plt.subplot(gs[0]) 
plt.sca(axMain) 
cf = axMain.contourf(X[0:40,:], Y[0:40,:], f(X,Y)[0:40,:] , vmin=-1, vmax=2) 

divider = make_axes_locatable(axMain) 
axShallow = divider.append_axes("top", size="100%", pad=0.1, sharex=axMain) 
axShallow.contourf(X[41:80,:], Y[41:80,:], f(X,Y)[41:80,:], vmin=-1, vmax=2) 
axShallow.set_xticklabels([]) 
axShallow2 = divider.append_axes("top", size="50%", pad=0.1, sharex=axMain) 
axShallow2.contourf(X[81:,:], Y[81:,:], f(X,Y)[81:,:], vmin=-1, vmax=2) 
axShallow2.set_xticklabels([]) 

plt.show() 
+0

ありがとう!私の問題は、元のものを使用する必要があるときに、2番目の仕切り(divider = make_axes_locatable(axShallow))を定義しようとしていたことが判明しました。これは、一度あなたの例を投稿すると明らかになりました。 –

関連する問題