matplotlib에서 여러 서브 플롯을 얻으려면 어떻게해야합니까?
이 코드가 어떻게 작동하는지에 대해 약간 혼란 스럽습니다.
fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()
이 경우 무화과, 축은 어떻게 작동합니까? 그것은 무엇을합니까?
또한 이것이 동일한 작업을 수행하지 않는 이유는 무엇입니까?
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
이를 수행하는 방법에는 여러 가지가 있습니다. 이 subplots
메서드는 ax
배열에 저장되는 서브 플롯과 함께 Figure를 생성합니다 . 예를 들면 :
import matplotlib.pyplot as plt
x = range(10)
y = range(10)
fig, ax = plt.subplots(nrows=2, ncols=2)
for row in ax:
for col in row:
col.plot(x, y)
plt.show()
그러나 이와 같은 것도 작동하지만 서브 플롯이있는 그림을 생성하고 그 위에 추가하기 때문에 "깨끗한"것은 아닙니다.
fig = plt.figure()
plt.subplot(2, 2, 1)
plt.plot(x, y)
plt.subplot(2, 2, 2)
plt.plot(x, y)
plt.subplot(2, 2, 3)
plt.plot(x, y)
plt.subplot(2, 2, 4)
plt.plot(x, y)
plt.show()
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(range(10), 'r') #row=0, col=0
ax[1, 0].plot(range(10), 'b') #row=1, col=0
ax[0, 1].plot(range(10), 'g') #row=0, col=1
ax[1, 1].plot(range(10), 'k') #row=1, col=1
plt.show()
서브 플롯 호출에서 축을 풀 수도 있습니다.
그리고 서브 플롯간에 x 및 y 축을 공유할지 여부를 설정합니다.
이렇게 :
import matplotlib.pyplot as plt
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True, sharey=True)
ax1.plot(range(10), 'r')
ax2.plot(range(10), 'b')
ax3.plot(range(10), 'g')
ax4.plot(range(10), 'k')
plt.show()
문서 읽기 : matplotlib.pyplot.subplots
pyplot.subplots()
fig, ax
표기법을 사용하여 두 개의 변수로 압축 해제 된 튜플 을 반환합니다.
fig, axes = plt.subplots(nrows=2, ncols=2)
코드
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
은 ( 는) 개체의 구성원이 아닌 subplots()
함수 이므로 작동하지 않습니다 .pyplot
Figure
matplotlib 버전 2.1부터 질문의 두 번째 코드도 잘 작동한다는 사실에 관심이있을 수 있습니다.
로부터 변경 로그 :
Figure 클래스에는 이제 subplots 메서드가 있습니다. Figure 클래스에는 이제 pyplot.subplots ()와 동일하게 작동하지만 기존 Figure에서 작동하는 subplots () 메서드가 있습니다.
예:
import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
plt.show()
참고 URL : https://stackoverflow.com/questions/31726643/how-do-i-get-multiple-subplots-in-matplotlib
'program tip' 카테고리의 다른 글
Firefox에서 링크의 키보드 포커스를 허용하는 방법은 무엇입니까? (0) | 2020.08.19 |
---|---|
'창'에서 'btoa'실행 실패 : 인코딩 할 문자열에 Latin1 범위를 벗어난 문자가 포함되어 있습니다. (0) | 2020.08.19 |
SQL Server에서 좌표 (Google지도의 경도 / 위도)를 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2020.08.19 |
JPQL IN 절 : Java-Arrays (또는 Lists, Sets…)? (0) | 2020.08.19 |
파이썬 문자열에서 하위 문자열의 첫 번째 발생을 어떻게 찾을 수 있습니까? (0) | 2020.08.19 |