let us not love with words or tongue but actions and truth.

IT/파이썬

[그래프] 3D 그래프 그리기

sarah0518 2021. 2. 19. 10:07
728x90

 

 

 

오늘은 3D 그래프를 그려보겠습니다.

 

3D그래프에 줄 효과는, 

  1. 색상 변경
  2. 산점도 색의 진하기 조정
  3. View Angle 조정

입니다!

 

 

다른것은 이미 유사한 내용이겠지만 3번은 3D 그래프에만 존재하는 것이에요.

 

 

관련 라이브러리는 아래와 같아요.

 

1
from mpl_toolkits.mplot3d import Axes3D
cs

 

 

코드도 아주 간단하답니다.

 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fig = plt.figure(figsize=(1010))
ax = fig.add_subplot(111, projection='3d')
 
for i in range(len(['orange''blue'])):
    ax.scatter(np.array(df['xx']), np.array(df['yy']), np.array(df['zz']), s=50, alpha=0.5)
 
ax.set_xlabel('x axis')
ax.set_ylabel('y axis')
ax.set_zlabel('z axis')
 
# View Angle 조정하기
ax.view_init(20,80)
 
plt.show()
cs

 

여기서 중요한 것은 x, y, z값에 들어가는 형태는 array형태이며 

혹시, 만약 1차원 array가 error난다면

강제로 2차원 array로 변경해주셔야 됩니다.

 

 

 

2차원 array로 변경은 아래 예시와 같이 하시면 됩니다!

 

1
np.array(df['xx']).reshape([2,65])
cs

 

 

1. 색상변경

 

색상은 for문으로 구성해서 orange와 blue (default 색상) 인 2가지로 표현하는 식입니다.

for i in range(len(['orange''blue'])):

 

 

 

2. 진하기 조정

 

alpha=0.5 값으로 색상의 진하기를 조정할 수 있습니다. (max=1)

 

 

 

3. View Angle 조정하기

 

ax.view_init(20,80)

 

왼쪽의 숫자는 altitude를

오른쪽의 숫자는 horizontal값을 조정해줍니다.

 

 

왼쪽: ax.view_init(12,20)                                                                       오른쪽: ax.view_init(20,80) 

 

 

위의 그래프를 보시면 12보다 20의 값이 더 위에서 내려다 보는 느낌입니다.

12를 0으로 줄이면 바로 정면 같은 높이에서 보는 형식이 됩니다.

 

 

마찬가지로

20보다는 80이 조금더 시계방향으로 회전된 것을 보실 수 있습니다.

 

ax.view_init(-100, -30) 과 같이 음수의 값도 가능하니 여러번 그려보시면 이해 되실 거에요!

 

 

728x90