2017-12-28 6 views
0

私は1つの図に4つのサブプロットをプロットしており、その間のスペースを均等に調整したいと思います。サブプロットの間のスペースを調整する

grid.GridSpec.updateを試しました。

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 

plt.figure(figsize=(8,8)) 
gs2 = gridspec.GridSpec(2, 2) 
gs2.update(wspace=0.01, hspace=0.01) 

ax1 = plt.subplot(gs2[0,0],aspect='equal') 
ax1.imshow(img) 
ax1.axis('off') 

ax2 = plt.subplot(gs2[0,1],aspect='equal') 
ax2.imshow(img) 
ax2.axis('off') 

ax3 = plt.subplot(gs2[1,0],aspect='equal') 
ax3.imshow(img) 
ax3.axis('off') 

ax4 = plt.subplot(gs2[1,1],aspect='equal') 
ax4.imshow(img) 
ax4.axis('off') 

で-間の2つのプロットの縦のスペースが大きすぎると、以下に示すように、それは、私がgs2.update(hspace=)を調整どんなにを変更しません:

enter image description here

+1

定義された態様にサブプロットを使用して、グリッドのHSPACEによって定義されるサブプロット間の分離が必要これは最小の空間として見られるようにしてくださいパラメーター。したがって、必要に応じて正確な間隔を設定するには、それに応じて余白や図形サイズを設定する必要があります。 – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest。どうもありがとうございました!そうです。とにかく「人物サイズアスペクト比」の設定を回避するには? – Jundong

+1

[この投稿](https://stackoverflow.com/questions/42475508/how-to-combine-gridspec-with-plt-subplots-to-eliminate-space-between-rows-of-s)をお勧めします。 [AxesGrid](https://matplotlib.org/examples/axes_grid/demo_axes_grid.html)を使用するオプションもあります。 – ImportanceOfBeingErnest

答えて

0

それは引き起こしている可能性があなたのaspect='equal'です問題。

他のサブプロットに応じて、

import numpy as np 
%matplotlib inline # if in a jupyter notebook like environment 

img = np.ones((30, 30)) 

fig, axes = plt.subplots(2, 2, sharex=True, sharey=True, figsize=(8,8), 
         gridspec_kw={'wspace': 0.01, 'hspace': 0.01}) 
axes = axes.ravel() 

for ax in axes: 
    # aspect : ['auto' | 'equal' | scalar], optional, default: None 
    ax.imshow(img, aspect='auto') 
    ax.axis('off') 

enter image description here

関連する問題