3

1つの図に4つのサブプロットを作成する次のコードがあります。

f = figure( figsize=(7,7) )
f.add_axes([0.2,0.175,0.75,0.75])
f.subplots_adjust(left=0.15)
f.clf()
ax = f.add_subplot(111)
ax1 = f.add_subplot(221)
ax2 = f.add_subplot(222)
ax3 = f.add_subplot(223)
ax4 = f.add_subplot(224)
ax.xaxis.set_major_formatter( NullFormatter() )
ax.yaxis.set_major_formatter( NullFormatter() )
ax2.xaxis.set_major_formatter( NullFormatter() )
ax2.yaxis.set_major_formatter( NullFormatter() )
ax1.xaxis.set_major_formatter( NullFormatter() )
ax4.yaxis.set_major_formatter( NullFormatter() )
f.subplots_adjust(wspace=0,hspace=0)

ax1.plot(tbins[0:24], mean_yszth1, color='r', label='mean', marker='.', lw=3)
ax2.plot(tbins[0:24], mean_ysz1, color='r', label='mean', marker='.', lw=3)
ax3.plot(tbins[0:24], mean_yszth2, color='r', label='mean', marker='.', lw=3)
ax4.plot(tbins[0:24], mean_ysz2, color='r', label='mean', marker='.', lw=3)

ax1.set_xlim(0,12)
ax1.set_ylim(-0.5,0.5)
ax2.set_xlim(0,12)
ax2.set_ylim(-0.5,0.5)
ax3.set_xlim(0,12)
ax3.set_ylim(-0.5,0.5)
ax4.set_xlim(0,12)
ax4.set_ylim(-0.5,0.5)
ax.set_xlabel(r"$\mathrm{Time\ since\ last\ merger\ (Gyr)}$")
ax.set_ylabel(r"$\mathrm{\Delta Y_{SZ}/Y_{SZ}}$")

結果は次のようになります。

ご覧のとおり、軸ラベルは目盛りと重なっています。共通軸のラベルを軸から少し離したいと思います。これを行うのに最適な方法がわかりません。

4

1 に答える 1

3

およびメソッドlabelpadのパラメータを使用します。set_ylabelset_xlabel

Definition: ax.set_ylabel(self, ylabel, fontdict=None, labelpad=None, **kwargs)
Docstring:
Call signature::

  set_ylabel(ylabel, fontdict=None, labelpad=None, **kwargs)

Set the label for the yaxis

*labelpad* is the spacing in points between the label and the y-axis

これは、ラベルパッドを50(x)と60(y)に設定した場合に得られるものです。デフォルト構成を使用すると、ラベルが図のフレームの外側にあるため、図の余白を手動で変更する必要がありました。

ここに画像の説明を入力してください

編集
あなたのコメントから、あなたは非常に古いバージョンのmatplotlibを使用している可能性があるようです。Labelpadパラメータは多くのバージョンからmatplotlibに含まれていますが、設定方法が異なる可能性があります(確かにはわかりません)。
Webで、この使用法を示すコメントをいくつか見つけました。

ax.xaxis.LABELPAD = 8  # default is 5

また、私はそれを次のように見ました:

ax.xaxis.labelpad = 8
于 2012-12-31T11:17:29.177 に答える