Matplotlib-X軸のラベルは下に移動しますが、X軸の目盛りは移動しません


109

ヒストグラムをプロットするためにMatplotlibを使用しています。私の前の質問のヒントを使用して:Matplotlib-各ビンラベルを付けると、多かれ少なかれねじれが解決しました。

最後の問題が1つあります。以前は、x軸のラベル(「時間(ミリ秒)」)がx軸の目盛り(0.00、0.04、0.08、0.12など)の下に表示されていました。

パディングなし-図の下の軸ラベル

Joe Kingstonからのアドバイス(上記の質問を参照)を使用して、私は以下を使用してみました:

ax.tick_params(axis='x', pad=30)

ただし、これにより、x軸の目盛り(0.00、0.04、0.08、0.12など)とx軸のラベル( "時間(ミリ秒)")の両方が移動します。

30パディング-軸ラベルと目盛りの両方が移動しました

x軸ラベルのみを3行の図の下に移動する方法はありますか?

Nb:下のPNGを直接開く必要がある場合があります。画像を右クリックしてから、画像を表示(FFで)、または画像を新しいタブで開く(Chrome)。SOによって行われた画像のサイズ変更は、それらを読みにくくしました

回答:


196

labelpadパラメータを使用:

pl.xlabel("...", labelpad=20)

または後に設定:

ax.xaxis.labelpad = 20

13

変数ax.xaxis._autolabelpos = Trueの場合、matplotlibは(一部の抜粋)に従って、axis.pyの関数_update_label_positionにラベル位置を設定します。

    bboxes, bboxes2 = self._get_tick_bboxes(ticks_to_draw, renderer)
    bbox = mtransforms.Bbox.union(bboxes)
    bottom = bbox.y0
    x, y = self.label.get_position()
    self.label.set_position((x, bottom - self.labelpad * self.figure.dpi / 72.0))

以下を使用して、目盛りとは無関係にラベルの位置を設定できます。

    ax.xaxis.set_label_coords(x0, y0)

_autolabelposをFalseに設定するか、前述のようにlabelpadパラメータを変更します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.