Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib에서 3D 막대에 대한 범례를 만드는 방법은 무엇입니까?

<시간/>

matplotlib에서 3D 막대에 대한 범례를 생성하기 위해 3D 막대를 플롯하고 legend() 메서드를 사용하여 범례를 배치할 수 있습니다.

단계

  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • Figure()를 사용하여 새 Figure 생성 또는 기존 Figure 활성화 방법.
  • 하위 플롯 배열의 일부로 Figure에 축을 추가합니다.
  • numpy를 사용하여 x3, y3, z3, dx, dy 및 dz 데이터 목록을 만듭니다.
  • bar3d()를 사용하여 3D 막대 그리기 방법.
  • 범례 배치를 위한 직사각형 축을 만듭니다.
  • legend() 사용 막대에 대한 범례를 배치하는 방법입니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

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()

출력

Matplotlib에서 3D 막대에 대한 범례를 만드는 방법은 무엇입니까?