Bài 30: Transforms ( Biến đổi trục ) - Matplotib Cơ Bản

Đăng bởi: Admin | Lượt xem: 1435 | Chuyên mục: AI


Package matplotlib được xây dựng dựa trên khung chuyển đổi để dễ dàng di chuyển giữa các hệ tọa độ. Bốn hệ tọa độ có thể được sử dụng. Các hệ thống được mô tả ngắn gọn trong bảng dưới đây:
CoordinateTransformation ObjectMiêu tả
Data
ax.transData
Hệ tọa độ dữ liệu land của người sử dụng được điều khiển bởi xlim và ylim
Axesax.transAxesHệ trục tọa độ. (0,0) ở dưới cùng bên trái và (1,1) ở 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 cùng bên trái và (1,1) ở trên cùng bên phải của hình
displayNoneĐây là hệ tọa độ pixel của màn hình. (0,0) là góc dưới bên trái và (chiều rộng, chiều cao) là góc 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 sử dụng thay vì Không có.
Xem xét ví dụ sau:
axes.text(x,y,"my label")
Text được đặt ở vị trí của một điểm dữ liệu (x, y). Vì vậy, ta sẽ nói về "data coords".
Sử dụng các đối tượng biến đổi khác, vị trí có thể được kiểm soát. Ví dụ, nếu bài kiểm tra trên được đặt ở tâm của hệ tọa độ trục:
axes.text(0.5, 0.5, "middle of graph", transform=axes.transAxes)
Các phép biến đổi này có thể được sử dụng cho bất kỳ loại đối tượng Matplotlib nào. Biến đổi mặc định cho ax.text là ax.transData và biến đổi mặc định cho fig.text là fig.transFigure.
Hệ tọa độ trục cực kỳ hữu ích khi đặt văn bản theo trục của bạn. Bạn có thể thường muốn một text bubble ở một vị trí cố định; ví dụ: ở phía trên bên trái của ngăn trục và giữ vị trí đó cố định khi bạn xoay hoặc thu phóng.

matplotlib.transforms :

matplotlib bao gồm một khuôn khổ cho các phép biến đổi hình học tùy ý được sử dụng để xác định vị trí cuối cùng của tất cả các phần tử được vẽ trên canvas.
Các biến đổi được tạo thành các cây của đối tượng TransformNode mà giá trị thực của chúng phụ thuộc vào con. Khi nội dung của con thay đổi, cha mẹ của chúng sẽ tự động mất hiệu lực. Lần tiếp theo khi truy cập vào một 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 / vô hiệu hóa này ngăn chặn việc tính toán lại các biến đổi không 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 là biểu đồ của cây biến đổi được sử dụng để vẽ dữ liệu vào biểu đồ:
Frame có thể được sử dụng cho cả các 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 kết xuất phụ trợ để thực hiện các phép biến đổi affine bất cứ khi nào có thể. Do đó, có thể thực hiện chỉ phần affine hoặc phần không affine của một phép biến đổi trên một 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 transform == non-affine part + affine part
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!