Tôi muốn kiểm soát vị trí của các chốt hình matplotlib trên một đường đồng mức, nhưng không sử dụng cờ thủ công = Đúng trong nhãn. Ví dụ, tôi muốn chỉ định một tọa độ x, và có các nhãn được tạo ra tại các điểm đi qua dòng này. Tôi thấy rằng bạn có thể nhận được vị trí của các nhãn riêng lẻ bằng cách sử dụng get_position(), nhưng tôi bị kẹt ở đó. Mọi sự trợ giúp sẽ rất được trân trọng. Cảm ơn!Matplotlib Đường viền nhãn Vị trí
Trả lời
Không, không có cách nào được xây dựng thành matplotlib để làm điều đó. Bạn có nghĩa vụ hoặc là sống với các địa điểm mặc định hoặc đi hoàn toàn tương tác với hướng dẫn sử dụng và sử dụng chuột.
Bạn có thể muốn gửi báo cáo này dưới dạng báo cáo lỗi ở trên để họ có thể cải thiện thuật toán của mình.
Có nhiều tùy chọn để giải quyết vấn đề này. Đầu tiên là đặt văn bản theo chương trình trên hình con đường. Bạn sẽ không thể xóa một cách đáng tin cậy các dòng bên dưới văn bản theo cách này. Giả sử bạn có đường viền c
, bạn có thể tìm thấy đường bao trong c.collections
. Đối với mỗi đường bao gọi get_paths
và đặt văn bản của bạn trên đường dẫn đó.
Tùy chọn khác sẽ là thay thế mã cho vị trí thủ công (trong matplotlib.contour.BlockingContourLabeler
) hoặc tinh chỉnh mã tìm vị trí nhãn (trong matplotlib.contour.locate_label
), nhưng cả hai hàm đều khá dày đặc. Nếu bạn có thể đưa ra một sự thay thế làm việc cho locate_label
chỉ ghi đè lên các phương pháp cũ trong âm mưu của bạn vĩ mô
def your_locate_label(self, linecontour, labelwidth):
# some magic
pass
ar = np.array([[1,0], [0,1]]
c = matplotlib.contour(ar)
c.locate_label = your_locate_label
c.clabel()
Btw, nếu bạn sử dụng ipython
bạn có thể dễ dàng xem các nguồn chức năng từ phiên tương tác của bạn với
%psource c.clabel
hoặc trực tiếp gọi của bạn $EDITOR
vào file được nó được định nghĩa với
%edit c.clabel
Vâng, hiện nay là một cách để kiểm soát vị trí nhãn! https://github.com/matplotlib/matplotlib/pull/642
plt.figure()
CS = plt.contour(X, Y, Z)
manual_locations = [(-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4), (2.4, 1.7)]
plt.clabel(CS, inline=1, fontsize=10, manual=manual_locations)
thủ công có thể là một đối tượng iterable của x, y tuples. Nhãn đường bao sẽ được tạo ra như thể chuột được nhấp vào mỗi vị trí x, y. – Faber
Có cách nào để cho phép ghi nhãn tự động, và sau đó lặp qua các nhãn để loại bỏ (và có thể cải thiện) bất kỳ nhãn nào giao cắt các trục? –
- 1. đánh dấu vị trí nhãn cho âm mưu 3D matplotlib
- 2. Matplotlib thanh màu nền và vị trí nhãn
- 3. Làm thế nào để vẽ đường viền quanh nhãn UILabel?
- 4. python matplotlib - đường viền - khoảng tin cậy
- 5. Âm mưu đường viền cực trong Matplotlib
- 6. javafx 2.0 thêm đường viền vào Nhãn
- 7. Thứ tự mảng đường viền đầu vào matplotlib
- 8. vị trí tự động hộp văn bản trong matplotlib
- 9. Tùy chỉnh màu đường viền màu trên matplotlib
- 10. Matplotlib: ô đường viền với tiện ích con trượt
- 11. Thêm đơn vị để yaxis nhãn trong Matplotlib
- 12. Nhãn trục đường thẳng định tâm trong matplotlib
- 13. SVG con đường vị trí
- 14. nhãn matplotlib matshow
- 15. ggplot2 cực âm mưu trục nhãn vị trí
- 16. Phát hiện vị trí chuột tương đối trên vải matplotlib
- 17. Vẽ các đường trục hoặc nguồn gốc cho ô đường viền Matplotlib
- 18. Python matplotlib -> Ô nhịp 3D -> điều chỉnh vị trí nhãn đánh dấu, thanh trong suốt
- 19. Vị trí tách WPF
- 20. Chrome: xóa đường viền/trang trí cửa sổ
- 21. nhãn matplotlib không hoạt động
- 22. định dạng nhãn trục matplotlib
- 23. thay đổi Vị trí nhãn tại thời gian chạy
- 24. Điều chỉnh vị trí của nhãn trong UITableViewCell
- 25. Nhãn không dây - cách thay đổi vị trí văn bản
- 26. Tính vị trí đường cơ sở UITextField
- 27. Kết hợp đường viền trên cùng, đường viền phải, đường viền trái, đường viền dưới cùng trong CSS
- 28. Ảnh SVG có đường viền/nét viền
- 29. Nhãn nhãn Matplotlib: \ theta không hoạt động \ Theta không
- 30. Vị trí văn bản Matplotlib ví dụ: suptitle bên trong khung
tôi không tìm thấy vấn đề này được đăng, vì vậy tôi làm mới: https://github.com/matplotlib/matplotlib/issues/613 – keflavich