Phần 30: Transforms ( Biến đổi trục ) – Matplotib Basic

Package matplotlib được xây dựng dựa vào khung chuyển đổi để dễ dàng di chuyển giữa các hệ tọa độ. 4 hệ tọa độ có thể được dùng. Các hệ thống được giới thiệu ngắn gọn trong bảng sau đây:
Coordinate | Transformation Object | Miêu tả |
---|---|---|
Data | ax.transData | Hệ tọa độ dữ liệu land của người dùng được điều khiển do xlim và ylim |
Axes | ax.transAxes | Hệ trục tọa độ. (0,0) ở dưới cuối bên trái và (1,1) bên trên cùng bên phải của các trục. |
Figure | fig.transFigure | Hệ tọa độ của Hình. (0,0) ở dưới cuối bên trái và (1,1) bên trên cùng bên phải của hình |
show | None | Đây chính là hệ tọa độ pixel của màn hình. (0,0) là góc phía dưới bên trái và (chiều rộng, chiều cao) là góc phía trên bên phải của màn hình tính bằng pixel.Ngoài ra, (matplotlib.transforms.IdentityTransform ()) có thể được dùng thay vì Không có. |
Xem xét ví dụ sau:
axes.textual content(x,y,"my label")
Text được đặt tại vị trí của 1 điểm dữ liệu (x, y). Vì thế, ta sẽ nói về “information coords”.
Sử dụng những đối tượng biến đổi khác, vị trí có thể được kiểm soát. Ví dụ, nếu như bài kiểm tra trên được đặt ở tâm của hệ tọa độ trục:
axes.textual content(0.5, 0.5, "center of graph", rework=axes.transAxes)
Những phép biến đổi này có thể được dùng cho bất kỳ loại đối tượng Matplotlib nào. Biến đổi mặc định cho ax.textual content là ax.transData và biến đổi mặc định cho fig.textual content là fig.transFigure.
Hệ tọa độ trục cực có ích khi đặt văn bản theo trục của các bạn. Bạn sẽ có thể thường muốn 1 textual content bubble ở 1 vị trí cố định; ví dụ: ở bên trên bên trái của ngăn trục và giữ vị trí đó cố định khi các bạn xoay hay thu phóng.
matplotlib.transforms :
matplotlib gồm 1 khuôn khổ cho những phép biến đổi hình học thoải mái được dùng để xác định vị trí cuối cùng của toàn bộ các phần tử được vẽ trên canvas.
Các biến đổi được tạo nên các cây của đối tượng TransformNode mà giá trị thực của chúng dựa vào con. Khi nội dung của con thay đổi, cha mẹ của chúng sẽ tự mất hiệu lực. Lần tiếp theo khi truy cập 1 biến đổi không hợp lệ, nó sẽ được tính toán lại để phản ánh những thay đổi đó. Cách tiếp cận bộ nhớ đệm / tắt này chặn việc tính toán lại các biến đổi không thật cần thiết và góp phần vào hiệu suất tương tác tốt hơn.
Ví dụ: đây chính là biểu đồ của cây biến đổi được dùng để vẽ dữ liệu vào biểu đồ:
Frame có thể được dùng cho cả những phép biến đổi affine và không affine. Tuy nhiên, đối với tốc độ, tôi muốn sử dụng các trình xuất nhập phụ trợ để thực hiện những phép biến đổi affine bất kỳ lúc nào có thể. Do đó, có thể thực hiện chỉ phần affine hay phần không affine của 1 phép biến đổi trên 1 tập dữ liệu. Affine luôn được giả định là xảy ra sau affine không phải. Đối với bất kỳ biến đổi nào:
full rework == non-affine half + affine half