Giới thiệu
Để lấy tọa độ pixel (pixel coordinates) từ một scatter plot được tạo bởi matplotlib, bạn có thể thực hiện theo các bước sau:
- Thiết lập kích thước hình vẽ và padding.
- Khởi tạo biến
nlưu số lượng điểm dữ liệu mẫu. - Tạo figure và tập hợp subplot.
- Vẽ scatter plot.
- Lấy tọa độ dữ liệu x, y bằng phương thức get_data().
- Chuyển đổi tọa độ dữ liệu sang tọa độ pixel bằng transform.
- Lấy chiều rộng và chiều cao figure tính bằng point/pixel.
- Đảo ngược trục Y (vì gốc tọa độ pixel ở góc trên bên trái).
- In ra tọa độ pixel x, y.
- Hiển thị hình vẽ bằng show().
Ví dụ minh họa
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
n = 10
fig, ax = plt.subplots()
points, = ax.plot(np.random.random(n), np.random.random(n), 'r*')
x, y = points.get_data()
pixels = ax.transData.transform(np.vstack([x, y]).T)
x, y = pixels.T
width, height = fig.canvas.get_width_height()
y = height - y
print("Các tọa độ pixel là: ")
for xp, yp in zip(x, y):
print('{x:0.2f}\t{y:0.2f}'.format(x=xp, y=yp))
plt.show()
Kết quả đầu ra
Hình vẽ scatter plot và tọa độ pixel in ra console:


Các tọa độ pixel là: 564.93 161.83 446.27 112.60 153.39 247.65 236.90 258.34 519.10 301.04 237.66 118.16 149.71 303.29 386.74 105.81 172.93 121.81 110.94 116.20