그림.add_subplot(111)에서 인수는 무엇을 의미합니까?
가끔 다음과 같은 코드를 발견합니다.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()
그 결과:
서류를 정신없이 읽어봤는데 설명문을 못 찾겠어요111
. 가끔 나는 본다.212
.
의 주장은 무엇입니까?fig.add_subplot()
심술궂은가요?
다음 사진으로 설명하는 것이 가장 좋을 것 같습니다.
위의 내용을 초기화하려면 다음과 같이 입력합니다.
import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(221) #top left
fig.add_subplot(222) #top right
fig.add_subplot(223) #bottom left
fig.add_subplot(224) #bottom right
plt.show()
이는 단일 정수로 인코딩된 하위구 그리드 매개변수입니다.예를 들어, "111"은 "1x1 그리드, 첫 번째 하위구"를 의미하고 "234"는 "2x3 그리드, 네 번째 하위구"를 의미합니다.
대체 양식:add_subplot(111)
이add_subplot(1, 1, 1)
.
Constantin의 답변은 정확하지만 더 많은 배경을 위해 이 동작은 Matlab에서 상속됩니다.
Matlab 동작은 Matlab 설명서의 그림 설정 - 그림당 다중 플롯 표시 섹션에 설명되어 있습니다.
하위구(m,n,i)는 그림 창을 작은 하위구의 m-by-n 행렬로 나누고 현재 그림에 대한 하위구를 선택합니다.그림 창의 맨 위 행에 따라 플롯에 번호가 매겨진 다음 두 번째 행에 번호가 매겨집니다.
저의 해결책은
fig = plt.figure()
fig.add_subplot(1, 2, 1) #top and bottom left
fig.add_subplot(2, 2, 2) #top right
fig.add_subplot(2, 2, 4) #bottom right
plt.show()
import matplotlib.pyplot as plt
plt.figure(figsize=(8,8))
plt.subplot(3,2,1)
plt.subplot(3,2,3)
plt.subplot(3,2,5)
plt.subplot(2,2,2)
plt.subplot(2,2,4)
첫 번째 코드는 3개의 행과 2개의 열이 있는 레이아웃에 첫 번째 하위구를 만듭니다.
첫 번째 열에 있는 세 개의 그래프는 세 개의 행을 나타냅니다.두 번째 그림은 같은 열의 첫 번째 그림 바로 아래에 표시됩니다.
마지막 두 플롯에는 논쟁이 있다.(2, 2)
두 번째 열에 행이 두 개뿐임을 나타냅니다. 위치 매개변수는 행으로 이동합니다.
fig.add_subplot(ROW,COLUMN,POSITION)
- ROW=행 수
- COLUMN=열 수
- POSITION= 플롯할 그래프의 위치
예
`fig.add_subplot(111)` #There is only one subplot or graph
`fig.add_subplot(211)` *and* `fig.add_subplot(212)`
총 2개의 행, 1개의 열이 있으므로 2개의 하위 그래프를 표시할 수 있습니다.장소는 1번가입니다.총 2개의 행, 1개의 열이 있으므로 2개의 하위 그래프를 표시할 수 있습니다.장소는 두 번째입니다.
add_subplot() 메서드에는 여러 개의 콜시그니처가 있습니다
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<-- 3.1.0 이후
콜 1 및 2:
콜 1과 콜2는 서로 같은 것을 실현합니다(다음에서 설명하는 제한까지).첫 번째 2개의 숫자(2x2, 1x8, 3x4 등)로 그리드 레이아웃을 지정하는 것으로 간주합니다.다음은 예를 제시하겠습니다.
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
둘 다 3개의 행과 4개의 열에 (3 x 4 = 12)개의 하위구 배열을 생성합니다.각 콜의 세 번째 번호는 왼쪽 상단의 1부터 오른쪽으로 증가하는 반환되는 축 객체를 나타냅니다.
이 코드는, 콜 2 를 사용하는 경우의 제한을 나타내고 있습니다.
#!/usr/bin/env python3
import matplotlib.pyplot as plt
def plot_and_text(axis, text):
'''Simple function to add a straight line
and text to an axis object'''
axis.plot([0,1],[0,1])
axis.text(0.02, 0.9, text)
f = plt.figure()
f2 = plt.figure()
_max = 12
for i in range(_max):
axis = f.add_subplot(3,4,i+1, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + '3,4,' +str(i+1))
# If this check isn't in place, a
# ValueError: num must be 1 <= num <= 15, not 0 is raised
if i < 9:
axis = f2.add_subplot(341+i, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + str(341+i))
f.tight_layout()
f2.tight_layout()
plt.show()
LHS의 call 1에서는 임의의 축 객체를 반환할 수 있지만 RHS의 call 2에서는 이 콜을 사용하여 index =9 렌더링 서브플롯 j), k) 및 l)까지만 반환할 수 있습니다.
pos는 세 자리 정수입니다.첫 번째 자리는 행의 수, 두 번째 자리는 열 수, 세 번째 자리는 하위구의 색인입니다. 즉, 그림.add_subplot(235)는 그림.add_subplot(2, 3, 5)과 동일합니다.이 형식이 작동하려면 모든 정수가 10보다 작아야 합니다.
콜 3
드문 경우이지만 add_subplot은 단일 인수를 사용하여 호출될 수 있습니다. 이 경우 하위구 축 인스턴스는 현재 그림에서 이미 생성되었지만 그림의 축 리스트에는 생성되지 않았습니다.
Call 4 (3.1.0 이후):
positional 인수가 전달되지 않은 경우 기본값은 (1, 1, 1)입니다.
, 콜의 재생.fig.add_subplot(111)
으로 x 그리드를 의 첫 유일한) 축합니다.기본적으로 1 x 1의 서브플롯 그리드를 설정하고 그리드의 첫 번째(및 유일한) 축 객체를 반환합니다.
fig.add_subplot(111)
닮다fig.add_subplot(1, 1, 1)
, . . . . . . . .111
는 하위구 그리드 파라미터에 불과하지만 단일 정수로 인코딩됩니다.
n*m 그리드에서 k번째 하위구를 선택하려면 다음을 수행합니다.fig.add_subplot(n, m, k)
.
언급URL : https://stackoverflow.com/questions/3584805/what-does-the-argument-mean-in-fig-add-subplot111
'programing' 카테고리의 다른 글
변수 끝에서 문자 제거 (0) | 2023.04.20 |
---|---|
프리프로세서 매크로가 없는 경우 Xcode 프로젝트에서 프로젝트 수준에서 실용적인 스킴 고유의 플래그를 정의하는 방법이 있습니까? (0) | 2023.04.20 |
WPF 사용자 제어 설계 시간 크기 (0) | 2023.04.15 |
NSURLSession을 사용하여 POST 요청 전송 (0) | 2023.04.15 |
정규식과 일치하는 첫 번째 줄 뒤에 파일의 일부를 가져오는 방법 (0) | 2023.04.15 |