Matplotlib-X 축 레이블을 아래쪽으로 이동하지만 X 축 눈금은 이동하지 않습니다.


109

히스토그램을 그리기 위해 Matplotlib를 사용하고 있습니다. 이전 질문의 팁을 사용하여 Matplotlib-label each bin , 나는 다소간 문제를 해결했습니다.

마지막 문제가 하나 있습니다. 이전에는 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 축 레이블 만 그림의 세 행 아래로 이동할 수있는 방법이 있습니까?

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.