13

ここに投稿されたものと同様の問題があります。sharex違いは、属性と属性を介して軸を共有する2つのサブプロットをプロットすると、プロット領域内に不要な空白ができることshareyです。設定後も空白が残りますautoscale(False)。たとえば、上記の投稿への回答と同様のコードを使用します。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
ax.imshow(np.random.random((10,10)))
ax.autoscale(False)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax, sharey=ax)   # adding sharex and sharey
ax2.imshow(np.random.random((10,10)))
ax2.autoscale(False)
plt.show()

この画像になります。

私も試してみax.set_xlim(0, 10)ましたが、ここax.set_xbound(0, 10)での提案に従って、役に立ちませんでした。余分な空白を取り除くにはどうすればよいですか?任意のアイデアをいただければ幸いです。

4

3 に答える 3

17

ここで提案されているように、次を追加します。

ax.set_adjustable('box-forced')
ax2.set_adjustable('box-forced')

問題を解決します。

ドキュメント

于 2013-02-27T22:38:49.457 に答える
3

として使用plt.subplots

fig, ax = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=False)
ax[0].imshow(np.random.random((10,10)))
ax[0].autoscale(False)
ax[1].imshow(np.random.random((10,10)))
ax[1].autoscale(False)

この図軸内に空白がありません。内またはを使用figsizeすると、より良い軸比を得ることができます。plt.subplotsfig.subplots_adjust

于 2013-02-26T20:18:07.303 に答える
1

問題は、を使用することで役立つ機械add_subplotです。図のサイズを変更すると、空白の量が変わることに注意してください。

以下はうまくいくようです(図のサイズを変更するまで)

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(5, 5))
ax = fig.add_axes([.3, .55, .35, .35]) 
ax.imshow(np.random.random((10,10)))
ax.autoscale(False)
ax2 = fig.add_axes([.3,  .05, .35, .35], sharex=ax, sharey=ax ) 
ax2.imshow(np.random.random((10,10)))
ax2.autoscale(False)

plt.show()

axesこれは、オブジェクトのサイズ/位置、共有軸、およびからの等しいアスペクト比の間の悪い相互作用のように見えますimshow

あなたがダニなしで生きることができるなら、あなたはすることができます

ax.set_axis_off()
ax2.set_axis_off()

これについては、matplotlibgithubで問題を開く価値があると思います。

于 2013-02-25T22:59:18.110 に答える