Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เพิ่ม legend ใน 3D scatterplot ด้วย scatter() ใน Matplotlib

ในการเพิ่ม legend ใน 3D scatterplot ด้วย scatter() ใน matplotlib สามารถทำตามขั้นตอนดังนี้ (ตัวอย่างใช้ plot() แทน scatter() เพื่อให้ legend ทำงานง่ายขึ้น):

ขั้นตอน

  • ตั้งค่าขนาดรูปและปรับ padding ระหว่างและรอบ subplots

  • เริ่มต้นตัวแปร N เก็บจำนวนข้อมูลตัวอย่าง

  • สร้างข้อมูล x และ y สร้าง z1 และ z2 เป็นรายการ

  • เพิ่ม subplot ใน figure ปัจจุบัน projection='3d'

  • วาด x, y และ z1 ด้วย plot() บน 2d axes marker *

  • วาด x, y และ z2 ด้วย plot() บน 2d axes marker o

  • วาง legend บนรูป

  • แสดงรูปด้วย show()

ตัวอย่าง

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 100
x = np.random.rand(N)
y = np.random.rand(N)
z1 = [i*j for (i, j) in zip(x, y)]
z2 = [i+j for (i, j) in zip(x, y)]
axes = plt.subplot(111, projection='3d')
axes.plot(x, y, z1, "*", label="xy")
axes.plot(x, y, z2, "o", label="x+y")
plt.legend(loc="upper right")
plt.show()

ผลลัพธ์

จะแสดง 3D plot จุดดาว (xy) และจุดวงกลม (x+y) พร้อม legend ขวาบน

เพิ่ม legend ใน 3D scatterplot ด้วย scatter() ใน Matplotlib