2016-03-28 17 views
7

Tôi sử dụng máy tính xách tay IPython với matplotlib.pyplot và tôi thường tạo một âm mưu yêu cầu một khối mã khá lớn để tạo. Sau đó tôi muốn lưu đối tượng và sử dụng cùng một cặp hình/trục chính xác đó để kết hợp trong một âm mưu khác sau này.Làm cách nào để hiển thị cùng một hình matplotlib nhiều lần trong một sổ ghi chép IPython?

Ví dụ: giả sử tôi có một số dữ liệu x-y cho ô phân tán. Tôi muốn hiển thị các điểm và sau đó một số ô sau này - có khả năng với các cuộc gọi khác tới pyplot để tạo các số liệu khác, không liên quan - Tôi muốn hiển thị lại hình đó để tôi có thể vẽ nó bằng một đường hồi quy hoặc một số đồ họa khác.

Trong hình tôi đã đính kèm bên dưới, tôi có sổ ghi chép ngắn; Tôi muốn các con số từ tế bào # 2 được rút ra trong tế bào # 3 mà không cần gọi pyplot.scatter một lần nữa.

Về cơ bản, tôi muốn hiển thị lại hình mà không lặp lại tất cả mã. Các lựa chọn của tôi để làm điều này là gì? Tôi đã không thể thực hiện điều này với các cuộc gọi để hiển thị() hoặc vẽ() hoặc bằng cách đặt đối tượng hình hiện tại trong ô là đối tượng hình đã lưu của tôi. Mọi lời khuyên đều được chào đón. Cảm ơn!

P.S. Tôi biết rằng nếu tôi tái sử dụng các con số và âm mưu trên nó, đối tượng sẽ thay đổi và do đó, nhà nước của các đối tượng con số có thể không phù hợp với cốt truyện được rút ra trong một tế bào IPython trước đó. Đó là okay cho công việc của tôi.

Example IPython notebook

Trả lời

10

Chỉ cần gọi myFigure trong bất kỳ tế bào sau khi myFigure được giao nhiệm vụ trong phòng giam trước đó.

Ví dụ trong tế bào 1:

In [1]: 
myFigure, myAx = plt.subplots() 
myAx.plot([1,2,3]) 

Trong tế bào sau đó:

In [2]: 
myFigure 

này sẽ hiển thị myFigure

+0

Tuyệt vời, cảm ơn bạn! –

+1

Tại sao myFigure.show() không hoạt động? – amit

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