반응형

파이썬 Matplotlib을 이용한 데이터 시각화 프로그래밍17 - 3D 플로팅1



Matplotlib은 3차원 좌표에 플로팅 해주는 다양한 기능들을 제공하고 있습니다. 이번 포스팅에서는 다음과 같은 내용에 대해 살펴봅니다.


  • 3D 라인 그리기
  • 3D 산점도 그리기
  • 3D 와이어 프레임 그리기


3D 곡선 그리기

3D 플로팅을 하려면 3차원 좌표를 설정하는 것이 제일 먼저 해야할 일입니다. 아래 코드는 3차원 좌표에 Parametric 곡선을 그리는 예입니다.



코드의 주요부분만 살펴보면,


>>> mpl.rcParams['legend.fontsize'] = 10


레전드의 폰트 크기를 10으로 설정해줍니다.



>>> ax = fig.gca(projection='3d')


플로팅 하려는 좌표를 3D로 지정합니다. 이제 ax는 3D 좌표가 기준이 됩니다.



>>> ax.plot(x, y, z, label='parametric curve')


x, y, z 를 3차원 좌표에 플로팅합니다.


이상을 보면 2차원 좌표에서 플로팅하는 것과 비교하면 z값이 하나 더 늘었을 뿐입니다. 결과는 아래와 같습니다.






3D 산점도 그리기

3차원 좌표에 산점도를 그리는 것 역시 제일 먼저 해야할 일은 3차원 좌표계를 설정하는 것입니다.



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


3D 곡선 그리기에서 3차원 좌료를 설정하기 위해 fig.gca(projection='3d')를 이용했지만, 여기서는 3차원 서브플롯을 추가하여 설정했습니다.


결과는 아래와 같습니다.




3D 와이어 프레임 그리기



>>> X, Y, Z = axes3d.get_test_data(0.05)


mpl_toolkits.mplot3d.get_test_data()는 테스트용 3차원 좌표 샘플을 만들어 줍니다.



>>> ax.plot_wireframe(X, Y, Z, rstride=5, cstride=5, lw=1)


3차원 좌표에 와이어 프레임을 그립니다. 와이어의 간격은 row 방향으로 5(rstride=5), column 방향으로 5(cstride=5)이며 선두께는 1로 설정했습니다. 이 값들을 적절하게 변경하면 와이어 프레임의 모양이 달라집니다. 만약 rstride나 cstride의 값이 0으로 설정되면 해당 방향의 와이어는 사라집니다.


결과는 아래와 같습니다.





반응형

+ Recent posts