itsource

매트플로트립에서 X축 레이블을 아래로 이동하지만 X축 눈금은 아래로 이동하지 않습니다.

mycopycode 2023. 7. 21. 21:35
반응형

매트플로트립에서 X축 레이블을 아래로 이동하지만 X축 눈금은 아래로 이동하지 않습니다.

히스토그램을 그리기 위해 Matplotlib을 사용하고 있습니다.이전 질문의 팁: Matplotlib - 빈에 레이블을 지정하여 문제를 해결했습니다.

마지막 문제가 하나 있습니다. 이전에는 x축 레이블("시간(밀리초))이 x축 눈금 아래에 렌더링되었습니다(0.00, 0.04, 0.08, 0.12 등).

No padding - Axis label underneath figures

Joe Kingston의 조언(위 질문 참조)을 사용하여 다음을 사용해 보았습니다.

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

그러나 이렇게 하면 x축 눈금(0.00, 0.04, 0.08, 0.12 등)과 x축 레이블("시간(밀리초))이 모두 이동됩니다.

30 Padding - Both Axis Label and Tick Marks have Moved

그림 세 줄 아래로 x축 라벨만 이동할 수 있는 방법이 있습니까?

NB: 아래의 PNG를 직접 열어야 할 수도 있습니다. - 이미지를 마우스 오른쪽 버튼으로 클릭한 다음 이미지 보기(FF) 또는 새 탭에서 이미지 열기(Chrome).SO가 수행한 이미지 크기 조정으로 인해 거의 읽을 수 없게 되었습니다.

레이블 패드 매개변수 사용:

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

또는 다음과 같이 설정합니다.

ax.xaxis.labelpad = 20

변수 ax.xaxis인 경우._autolabelpos = True, matplotlib은 레이블 위치를 function _update_label_position 축으로 설정합니다.py(일부 발췌):

    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 또는 위에서 언급한 대로 설정합니다.

수동으로 패딩하는 대신 수직 정렬을 할당합니다.va=):

ax.set_xlabel("x label", va='top');

@HYRY의 답변과 같이 라벨 패딩을 수동으로 수정하면 때때로 그림을 저장할 때 라벨이 잘립니다.레이블을 포함하려면, 설정bbox_inches='tight'방문하실 때savefig()예:

plt.plot(range(10))
plt.xlabel("x label", labelpad=30);
plt.savefig('img.png', bbox_inches='tight');

OOP API를 사용하면 다음과 같습니다.

fig, ax = plt.subplots()
ax.plot(range(10))
ax.set_xlabel("x label", labelpad=30);
fig.savefig('img.png', bbox_inches='tight');

언급URL : https://stackoverflow.com/questions/6406368/move-x-axis-label-downwards-but-not-x-axis-ticks-in-matplotlib

반응형