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

Cách tạo legend cho cột 3D trong Matplotlib

Để tạo legend cho cột 3D, ta vẽ các cột 3D và đặt legend bằng phương thức legend().

Các bước thực hiện

  • Thiết lập kích thước hình và khoảng đệm.
  • Tạo hình bằng figure().
  • Thêm axes 3D như subplot.
  • Tạo dữ liệu x3, y3, z3, dx, dy, dz bằng NumPy.
  • Vẽ cột 3D bằng bar3d().
  • Tạo patch Rectangle cho legend.
  • Dùng legend() đặt legend cho các nhóm cột.
  • Hiển thị bằng show().

Ví dụ

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax1 = fig.add_subplot(111, projection='3d')

x3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y3 = [5, 6, 7, 8, 2, 5, 6, 3, 7, 2]
z3 = np.zeros(10)
dx = np.ones(10)
dy = np.ones(10)
dz = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ax1.bar3d(x3, y3, z3, dx, dy, dz, color="green")
b1 = plt.Rectangle((0, 0), 1, 1, fc="green")

ax1.bar3d(y3, x3, z3, dx, dy, dz, color="red")
b2 = plt.Rectangle((0, 0), 1, 1, fc="red")

ax1.legend([b1, b2], ['type1', 'type2'])
plt.show()

Kết quả

Cách tạo legend cho cột 3D trong Matplotlib