티스토리 뷰

매트랩에서는 그래프를 그리면 항상 회전이 가능한데, 파이썬의 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 |