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

Matplotlib의 Poly3DCollection 플롯에 대한 투명도

<시간/>

Matplotlib에서 투명한 Poly3DCollection 플롯을 플롯하려면 다음 단계를 수행할 수 있습니다. -

  • 그림 크기 설정 및 서브플롯 사이 및 주변 여백 조정
  • 새 그림을 만들거나 기존 그림을 활성화합니다.
  • '~.axes.Axes' 추가 projection=3d가 있는 하위 플롯 배열의 일부로 그림에 .
  • x 만들기 , yz 데이터 포인트.
  • 꼭지점 목록을 만드세요.
  • 변환 x , yz 데이터 포인트를 압축된 튜플 목록으로 변환합니다.
  • Poly3d 인스턴스 목록 가져오기 .
  • add_collection3d()를 사용하여 플롯에 3D 컬렉션 개체 추가 방법.
  • 축을 끕니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection

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

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

x = [0, 2, 1, 1]
y = [0, 0, 1, 0]
z = [0, 0, 0, 1]

vertices = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3]]
tupleList = list(zip(x, y, z))
poly3d = [[tupleList[vertices[ix][iy]]
   for iy in range(len(vertices[0]))]
   for ix in range(len(vertices))]

ax.scatter(x, y, z)
ax.add_collection3d(Poly3DCollection(poly3d, facecolors='w', linewidths=1, alpha=0.5))
ax.add_collection3d(Line3DCollection(poly3d, colors='k', linewidths=2, linestyles='--'))

plt.axis('off')

plt.show()

출력

Matplotlib의 Poly3DCollection 플롯에 대한 투명도