2014-09-23 14 views
6

Tôi có thể làm cho các hộp văn bản trong matplotlib tốt. Nhưng tôi không thấy làm thế nào để loại bỏ chúng khỏi một âm mưu kết xuất? Có vẻ như không có figure.text.clear() hoặc figure.text (visible = False) sau khi bạn vẽ một hộp văn bản? Làm thế nào được thực hiện? và không giống như truyền thuyết, bạn dường như không thể làm cho chúng có thể kéo được?Làm thế nào bạn có thể xóa một hộp văn bản Matplotlib đã được rút ra trước đó?

+0

'figure.text.remove()'? – 101

Trả lời

11

Hộp văn bản là nghệ sĩ. Như vậy, bạn sẽ có thể thực hiện rất nhiều thứ với họ nếu bạn giữ một tham chiếu đến chúng. Do đó, trong bất kỳ mã âm mưu, thay vì

fig.text(0, 0, 'My text') 

bạn có thể làm

textvar = fig.text(0, 0, 'My text') 

Nếu bạn đã bị mất tài liệu tham khảo, tuy nhiên, tất cả các đối tượng văn bản có thể được tìm thấy trong các thuộc tính texts:

fig.texts # is a list of Text objects 

Trong phiên bản 1.3.1, thực hiện textvar.remove() tạo NotImplementedError (dường như đã được sửa trong 1.4). Tuy nhiên, bạn có thể nhận được xung quanh đó đến mức độ nào đó bằng cách đặt hiển thị thành Sai.

for txt in fig.texts: 
    txt.set_visible(False) 

sẽ làm cho tất cả các hộp văn bản của bạn biến mất.

+0

Bạn có gặp lỗi đó với 1.4 không? Tôi có thể thề rằng chúng tôi đã sửa lỗi đó .... – tacaswell

+0

Làm việc như một sự quyến rũ - ty –

+0

@tcaswell Tôi không nghĩ rằng để kiểm tra phiên bản mới nhất, đó là với 1.3.1. Thật tuyệt vời khi nó được sửa trong 1,4! – Ajean

Các vấn đề liên quan