Câu hỏi Làm thế nào tôi có thể loại bỏ trục trên và bên phải trong matplotlib?
Thay vì kiểu trục "đóng hộp" mặc định, tôi muốn chỉ có trục bên trái và dưới cùng, tức là:
+------+ |
| | |
| | ---> |
| | |
+------+ +-------
Điều này phải dễ dàng, nhưng tôi không thể tìm thấy các tùy chọn cần thiết trong tài liệu.
76
2018-05-29 08:45
gốc
Các câu trả lời:
Đây là giải pháp Matplotlib 2.0 được đề xuất từ trang web chính thức ĐÂY:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax = plt.subplot(111)
ax.plot(x, y)
# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# Only show ticks on the left and bottom spines
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.show()

63
2017-12-08 15:58
Ngoài ra, điều này
def simpleaxis(ax):
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
dường như đạt được hiệu ứng tương tự trên trục mà không mất hỗ trợ nhãn xoay.
(Matplotlib 1.0.1; giải pháp lấy cảm hứng từ điều này).
59
2017-11-04 15:20
[sửa] matplotlib bây giờ (2013-10) trên phiên bản 1.3.0 bao gồm
Đó là khả năng thực sự chỉ cần thêm vào, và bạn cần phiên bản Subversion cho nó. Bạn có thể xem mã ví dụ đây.
Tôi chỉ cập nhật để nói rằng có một tốt hơn thí dụ trực tuyến ngay bây giờ. Tuy nhiên vẫn cần phiên bản Subversion, chưa có bản phát hành nào được nêu ra.
[sửa] Matplotlib 0.99.0 RC1 vừa được phát hành, và bao gồm khả năng này.
31
2018-05-29 09:21
Nếu bạn không cần ve và như vậy (ví dụ: để vẽ hình minh họa định tính), bạn cũng có thể sử dụng cách giải quyết nhanh này:
Làm cho trục không nhìn thấy được (ví dụ: plt.gca().axison = False
) và sau đó vẽ chúng bằng tay plt.arrow
.
7
2018-05-29 10:06
(Đây là phần bình luận mở rộng, ngoài các câu trả lời toàn diện ở đây.)
Lưu ý rằng chúng tôi có thể ẩn từng phần tử trong số ba phần tử này một cách độc lập với nhau:
Để ẩn đường viền (còn gọi là "cột sống"): ax.set_frame_on(False)
hoặc là ax.spines['top'].set_visible(False)
Để ẩn các dấu tích: ax.tick_params(top=False)
Để ẩn nhãn: ax.tick_params(labeltop=False)
1
2017-12-27 10:10
Thư viện Seaborn đã được xây dựng với hàm despine ().
Chỉ cần thêm:
import seaborn as sns
Bây giờ tạo biểu đồ của bạn. Và thêm vào cuối:
sns.despine()
Nếu bạn nhìn vào một số giá trị tham số mặc định của hàm, nó sẽ loại bỏ cột sống trên cùng và bên phải và giữ cột sống phía dưới và bên trái:
sns.despine(top=True, right=True, left=False, bottom=False)
Xem thêm tài liệu tại đây:
https://seaborn.pydata.org/generated/seaborn.despine.html
0
2017-07-05 07:48
Điều này là thô sơ hơn nhiều, nhưng có thể làm các trick:
remove_border ()
-4
2018-01-11 05:44