728x90
반응형
해결하고자 하는 문제
- python을 통한 matplotlib기반 visualization에서 axis의 ratio를 조절해야할 때가 있음
해결 방법 : set_box_aspect 함수를 사용
- set_box_aspect() 함수를 사용하여 플롯의 가로 세로 비율을 설정할 수 있음
- 이 함수는 x, y, z 축 비율을 나타내는 세 가지 값의 목록을 받음
- 아래의 예제에서는 현재 코드는 각 축에 대한 데이터 범위의 실제 차이를 반영하도록 종횡비를 설정
- 실제 데이터 범위와 관계없이 세 축 모두에 대해 종횡비를 동일하게 설정하는 주석 처리된 대체 방법도 포함되어 있음
- 아래는 예제코드임
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# create example data
x = [1, 2, 3, 4, 5]
y = [3, 6, 9, 12, 15]
z = [2, 4, 6, 8, 10]
# create plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z)
# set aspect ratio for real diff. ####
ax.set_box_aspect([max(x)-min(x),
max(y)-min(y),
max(z)-min(z)])
# set aspect ratio for same ##########
# ax.set_box_aspect([1, 1, 1])
# show plot
plt.show()
|
cs |
- 실제 차이를 반영한 각 축의 비율
- 1, 1, 1로 고정한 각 축의 비율
반응형
'Study > Python' 카테고리의 다른 글
python 숫자 표기에서 e없이 출력하는 방법 (0) | 2023.08.24 |
---|---|
변수 값을 복사하여 새로 만들기 (deepcopy) (1) | 2023.08.24 |
list에서 중복 요소를 효율적으로 확인하는 방법 (0) | 2023.04.21 |
matplotlib에서 임의의(random) color 자동 생성하기 : hex string 기반 (0) | 2023.04.21 |
python bool list에서 True 개수 빨리 찾기 (0) | 2023.04.12 |