Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách lấy tọa độ pixel từ scatter plot tạo bởi Matplotlib

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 n lư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ách lấy tọa độ pixel từ scatter plot tạo bởi MatplotlibCách lấy tọa độ pixel từ scatter plot tạo bởi Matplotlib

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