2011-11-05 18 views
8

Tôi đã xem ví dụ "scatter hist" trong thư viện Matplotlib.matplotlib: khi sử dụng append_axes, làm cách nào tôi có thể biểu thị các trục tôi muốn thêm bảng con vào?

Tại thời điểm này x/y subplots là ở phía trên và bên phải tương ứng, ví dụ:

divider = make_axes_locatable(axScatter) 
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 

Tuy nhiên, nếu tôi thay đổi địa điểm âm mưu phụ để:

divider = make_axes_locatable(axScatter) 
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 

tức di chuyển x subpanel ở phía dưới, sau đó append_axes thêm subplot y vào bên phải của x subplot, thay vì bên phải của scatter plot. (Tôi sẽ tải lên hình ảnh nhưng tôi không có đủ uy tín để đăng hình ảnh ... grrr)!

Làm cách nào để có thể thông báo cho append_axes rằng tôi muốn nối phụ lục y vào bên phải của "trục chính" chứa ô phân tán? Tôi đoán rằng tôi cần phải chỉ định đối tượng axScatter một lần nữa ở đâu đó (mặc dù tôi nghĩ đó là những gì divider = make_axes_locatable(axScatter) là dành cho ?!) hoặc tôi đoán rằng divider đã thiết lập một lưới trong bảng điều khiển cửa sổ và tôi cần phải nói append_axes ô chứa các trục chính.

Cảm ơn,

Alex

+2

Tôi biết rằng trong trường hợp trên nó sẽ hoạt động nếu tôi chỉ đơn giản là chuyển đổi giữa các lệnh divider.append_axes ("top" ...) và divider.append_axes ("right" ...), nhưng còn khi nào tôi muốn để đặt subplots vào "dưới cùng" và trên "trái", khi nào cách vòng tôi gọi append_axes, các subplots vẫn còn gắn liền với trục không chính xác?!? – aim

+0

Tôi đã thử điều này nhưng không tìm thấy giải pháp nào. có vẻ như một lỗi. – bmu

Trả lời

1

Thứ tự mà bạn tạo axHistyaxHistx dường như có vấn đề. Nếu bạn chuyển đổi thứ tự của hai câu lệnh cuối cùng thì bạn có thể có được hiệu ứng mong muốn:

divider = make_axes_locatable(axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter) 

Điều này chắc chắn sẽ giống như một lỗi.