Tôi hiểu cách hiển thị các ô matplotlib trên màn hình bằng giao diện pyplot (tôi nghĩ vậy!). Tôi bắt đầu vẽ đồ thị trong một chương trình đa luồng, và điều này bắt đầu gây ra lỗi, vì vậy tôi đang cố gắng chuyển sang giao diện hướng đối tượng. Tôi có thể tạo một âm mưu đơn giản và lưu vào tệp bằng cách sử dụngVẽ các ô trên màn hình bằng cách sử dụng matplotlib API
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
fig = Figure()
can = FigureCanvas(fig)
ax = fig.add_subplot(111)
ax.plot((1,2,3))
can.print_figure('test')
Nhưng làm cách nào để hiển thị cốt truyện này trên màn hình? Tôi đã thấy mã khác sử dụng can.draw()
nhưng không có hiệu lực.
Ngoài ra, vui lòng cho tôi biết nếu có bất kỳ điều gì tối ưu về mã của tôi ở trên - tôi chưa thực sự hiểu thấu tất cả các đối tượng hình, canvas và trục này.
Cảm ơn rất nhiều sự giúp đỡ của bạn. Tôi đã không nhận ra câu trả lời sẽ được cụ thể cho các phụ trợ (tôi đã cố gắng để làm việc ra những gì 'pyplot.show()' đã làm, nhưng không tìm thấy mã có liên quan). Tôi tìm thấy [this] (http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_tk.html) ví dụ cho Tk, rất hữu ích. Đề cập đến đa luồng có lẽ là cá trích đỏ - tôi chỉ có một số mã đã thực hiện một số con số-crunching và lưu một số mảnh với pyplot, tôi đã thử chuyển nó thành một chuỗi để tôi có thể xem kết quả của nó trong khi nó đang chạy, và có rất nhiều điều kỳ lạ lỗi. – James