Matplotlib - Di chuyển nhãn X-Axis xuống dưới, nhưng không di chuyển nhãn X-Axis Ticks


109

Tôi đang sử dụng Matplotlib để vẽ biểu đồ. Sử dụng các mẹo từ câu hỏi trước của tôi: Matplotlib - dán nhãn cho từng thùng , ít nhiều tôi đã giải quyết được các vấn đề.

Có một vấn đề cuối cùng - trước đây - nhãn trục x ("Thời gian (tính bằng mili giây)") đang được hiển thị bên dưới dấu tích trục x (0,00, 0,04, 0,08, 0,12, v.v.)

Không có đệm - Nhãn trục bên dưới hình

Sử dụng lời khuyên từ Joe Kingston (xem câu hỏi ở trên), tôi đã thử sử dụng:

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

Tuy nhiên, điều này sẽ di chuyển cả đánh dấu trục x (0,00, 0,04, 0,08, 0,12, v.v.), cũng như nhãn trục x ("Thời gian (tính bằng mili giây)"):

30 Padding - Cả Nhãn Trục và Dấu tick đã Di chuyển

Có cách nào để chỉ di chuyển nhãn trục x xuống bên dưới ba hàng hình không?

Nb: Bạn có thể cần phải mở trực tiếp các PNG bên dưới - Nhấp chuột phải vào hình ảnh, sau đó Xem hình ảnh (trong FF) hoặc Mở hình ảnh trong tab mới (Chrome). Việc thay đổi kích thước hình ảnh do SO thực hiện đã khiến chúng không thể đọc được

Câu trả lời:


196

sử dụng tham số labelpad:

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

hoặc đặt nó sau:

ax.xaxis.labelpad = 20

13

Nếu biến ax.xaxis._autolabelpos = True, matplotlib đặt vị trí nhãn trong hàm _update_label_position trong axis.py theo (một số đoạn trích):

    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))

Bạn có thể đặt vị trí nhãn độc lập với bọ ve bằng cách sử dụng:

    ax.xaxis.set_label_coords(x0, y0)

đặt _autolabelpos thành False hoặc như đã đề cập ở trên bằng cách thay đổi thông số labelpad.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.