티스토리 뷰

 

매트랩에서는 그래프를 그리면 항상 회전이 가능한데, 파이썬의 matplotlib에서는 함수를 이용한 회전밖에 되지 않는다. 매트랩처럼 마우스로 interactive하게 회전하려면 plotly를 이용해야 한다.

 

먼저 데이터를 준비한다.

 

import plotly.graph_objects as go
import numpy as np

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X) * np.cos(Y)

 

plotly.graph_objects.Surface에 x, y, z 값을 넣으면 plotly.graph_objs._surface.Surface 객체가 만들어진다. 자세한 내용은 공식 페이지를 확인해보자. 이 객체를 plotly.graph_objects.Figure에 data로 넣으면 plotly.graph_objs._figure.Figure 객체가 만들어지는데, 매트랩에서 Surface 객체와 비슷하다고 보면 된다.

 

fig = go.Figure(data=[go.Surface(x=X, y=Y, z=Z)])

 

 

이제 show()를 호출하면 그래프가 뜬다.

 

fig.show()

 

 

마우스로 잡고 움직이면 회전한다.

 

 

참고로 그래프는 웹브라우저 또는 유사 환경에서만 볼 수 있다. plotly가 JavaScript로 구현되어 있기 때문이라고 한다.

 

Figure 객체를 만드는 방식을 보면 Surface 객체를 여러 개 넣을 수 있음을 눈치챌 수 있다.

 

fig = go.Figure(data=[go.Surface(x=X, y=Y, z=Z),
                      go.Surface(x=X, y=Y, z=Z + 3)])

fig.show()

 

 

Figure 객체의 옵션은 update_layout 메서드로 바꿀 수 있다. 무엇보다 perspective view인 것이 마음에 들지 않는다. Orthographic view로 바꾸려면 아래와 같이 쓴다.

 

fig.update_layout(scene=dict(
    camera=dict(
        projection=dict(type='orthographic')),
    )
)

 

 

update_layout으로는 그래프의 제목, 크기, 여백 등을 수정할 수 있다. 자세한 내용은

공식 페이지를 확인해보자.

 

 

'python' 카테고리의 다른 글

(펌) Python Clean Code  (0) 2025.07.09
넘파이와 파이썬의 정수 표현 범위  (0) 2025.01.21
파이썬 중고급 스킬들  (0) 2025.01.10
conda 초간단 매뉴얼  (0) 2024.08.20
list.extend와 list.iadd의 차이  (0) 2024.07.07
댓글