ขั้นตอนการทำงาน
กำหนดขนาดรูปภาพและปรับระยะห่างรอบๆ subplots
สร้าง Figure ใหม่หรือเปิดใช้งาน Figure ที่มีอยู่
เพิ่ม ax แบบ 3D เข้าไปใน Figure
สร้าง Scatter Plot ข้อมูลสุ่ม
ผูกฟังก์ชัน pick_event_method กับ Event pick_event
พิมพ์พิกัด x, y, z ของจุดที่ถูกคลิก
แสดงรูปภาพด้วยเมธอด show()
ตัวอย่างโค้ด
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Scatter plot 10 จุด สีสุ่ม ขนาด 100 picker=5 (ความทนทาน 5 pixels)
ax.scatter(np.random.rand(10), np.random.rand(10), np.random.rand(10),
c=np.random.rand(10), cmap='hot', picker=5, s=100)
def pick_event_method(event):
ind = event.ind[0]
x, y, z = event.artist._offsets3d
print(x[ind], y[ind], z[ind])
fig.canvas.mpl_connect('pick_event', pick_event_method)
plt.show()
ผลลัพธ์
กราฟ 3D Scatter 10 จุด เมื่อคลิกที่จุดใดจุดหนึ่ง จะพิมพ์พิกัด (x, y, z) ของจุดนั้นออกมาที่ Console
คำอธิบาย: picker=5 กำหนดให้จุดสามารถถูก Pick ได้เมื่อคลิกใกล้จุดภายใน 5 พิกเซล event.ind คือ Index ของจุดที่ถูก Pick event.artist._offsets3d เก็บพิกัด x, y, z ทั้งหมด