어떻게 Python 으로 3D 기둥 그림 을 그립 니까?
원본 코드 는 다음 과 같 습 니 다:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#
X=np.arange(0, 5, step=1)#X
Y=np.arange(0, 9, step=1)#Y
# (X,Y) Z , Z(X,Y)=X+Y
Z=np.zeros(shape=(5, 9))
for i in range(5):
for j in range(9):
Z[i, j]=i+j
xx, yy=np.meshgrid(X, Y)#
X, Y=xx.ravel(), yy.ravel()#
bottom=np.zeros_like(X)#
Z=Z.ravel()#
width=height=1#
#
fig=plt.figure()
ax=fig.gca(projection='3d')#
ax.bar3d(X, Y, bottom, width, height, Z, shade=True)#
#
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z(value)')
plt.show()
코드 판독:1.구조 가 표시 해 야 할 데이터
아래 그림 에서 보 듯 이 X 좌표 의 수 치 는[0,1,2,3,4]이 고 Y 좌표 의 수 치 는[0,1,2,3,4,5,6,7,8]이 며 각(X,Y)조합의 값 Z=X+Y 이 며 그 려 야 할 그림 은 X,Y 가 대응 하 는 좌표 위치 위 에 Z 의 값 에 따라 기둥 그림 을 그 리 는 것 이다.
2.좌표 설정
좌 표를 격자 화,X=[0,1,2,3,4],Y=[0,1,2,3,4,5,6,7,8]격자 화 한 결 과 는 다음 그림 과 같다.X 는 Y 를 참조 해 라디오(broadcast)를,Y 는 X 를 참조 해 각각 새로운 차원 을 추가 하고 복사 한 것 으로 풀이 된다.xx 와 yy 를 결합 하면 모든 X,Y 의 좌표 조합 을 얻 을 수 있 고 평면 화 된 후에 이런 대응 관 계 는 변 하지 않 는 다.코드 의 bottom 은 모든 기둥 을 그 리 는 Z 좌 표를 설정 하 는 데 사 용 됩 니 다.이 좌 표 는 모두 0 으로 설정 되 어 있 으 며,width 와 height 는 모든 기둥 의 길이 와 폭 을 설정 합 니 다.
3、bar3d
ax.bar3d(X, Y, bottom, width, height, Z, shade=True):
X,Y:기둥 이 XY 평면 에서 의 시작 좌표
bottom:기둥 이 Z 축 에 있 는 시작 좌표
width,height:기둥 의 길이 와 너비
Z:Z 축의 길 이 를 따라 숫자
shade:그림자 표시 할 지 여부(True 입체 효과 로 설정 하 는 것 이 좋 습 니 다)
shde=True
shade=False
만약 에 여러 개의 키 그림 을 그 려 야 하고 그 안에 있 는 모든 키 그림 이 3D 이 므 로 상기 코드 를 약간 수정 하면 됩 니 다.사례 는 다음 과 같 습 니 다.
fig=plt.figure()
ax=fig.add_subplot(1, 3, 1, projection='3d')
ax.bar3d(x, y, z, width, height, top, shade=True)
ax=fig.add_subplot(1, 3, 2, projection='3d')
ax.bar3d(x, y, z, width, height, top2, shade=True)
ax=fig.add_subplot(1, 3, 3, projection='3d')
ax.bar3d(x, y, z, width, height, top3, shade=True)
plt.show()
이상 은 Python 으로 3D 기둥 그림 을 그 리 는 방법 에 대한 상세 한 내용 입 니 다.python 으로 기둥 그림 을 그 리 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.