matplotlib에서 빈 하위 플롯을 만들려면 어떻게 해야 합니까?
matplotlib에서 하위 플롯 그룹(예: 3 x 2)을 만들고 있지만 데이터 세트가 6개 미만입니다.나머지 하위 플롯을 공백으로 만들려면 어떻게 해야 합니까?
배열은 다음과 같습니다.
+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+
이 작업은 여러 페이지에 걸쳐 계속될 수 있지만, 마지막 페이지에서는 예를 들어 2.1 상자에 대한 5개의 데이터 세트가 비어 있습니다.하지만, 저는 그 수치를 다음과 같이 선언했습니다.
cfig,ax = plt.subplots(3,2)
하위 그림 2,1의 공간에는 눈금과 레이블이 있는 기본 축 집합이 있습니다.어떻게 하면 그 공간을 프로그램적으로 빈 공간으로 만들고 축이 없는 공간으로 만들 수 있습니까?
필요 없는 축은 항상 숨길 수 있습니다.예를 들어, 다음 코드는 6번째 축을 완전히 끕니다.
import matplotlib.pyplot as plt
hf, ha = plt.subplots(3,2)
ha[-1, -1].axis('off')
plt.show()
결과는 다음과 같습니다.
축을 유지하면서 모든 축 장식(예: 눈금 표시 및 레이블)을 숨기는 방법은 matplotlib plot에서 축 텍스트 숨기기 문제에 대한 허용된 대답을 참조하십시오.
이 질문이 처음 제기된 이후로 훨씬 개선된 하위 플롯 인터페이스가 matplotlib에 추가되었습니다.여기서 추가 사항을 숨기지 않고 필요한 하위 플롯을 정확하게 만들 수 있습니다.또한 하위 그림은 추가 행 또는 열에 걸쳐 있을 수 있습니다.
import pylab as plt
ax1 = plt.subplot2grid((3,2),(0, 0))
ax2 = plt.subplot2grid((3,2),(0, 1))
ax3 = plt.subplot2grid((3,2),(1, 0))
ax4 = plt.subplot2grid((3,2),(1, 1))
ax5 = plt.subplot2grid((3,2),(2, 0))
plt.show()
축을 사용하여 하위 그림을 숨길 수도 있습니다.set_message 메서드입니다.
import matplotlib.pyplot as plt
import pandas as pd
fig = plt.figure()
data = pd.read_csv('sampledata.csv')
for i in range(0,6):
ax = fig.add_subplot(3,2,i+1)
ax.plot(range(1,6), data[i])
if i == 5:
ax.set_visible(False)
필요할 때 하위 플롯을 생성하는 것이 옵션입니까?
import matplotlib
matplotlib.use("pdf")
import matplotlib.pyplot as plt
plt.figure()
plt.gcf().add_subplot(421)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(422)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(423)
plt.fill([0,0,1,1],[0,1,1,0])
plt.suptitle("Figure Title")
plt.gcf().subplots_adjust(hspace=0.5,wspace=0.5)
plt.savefig("outfig")
(2,1)에 위치한 그림을 삭제하려면 다음을 사용할 수 있습니다.
import matplotlib.pyplot as plt
cfig,ax = plt.subplots(3,2)
cfig.delaxes(ax.flatten()[5])
새 버전의 matplotlib(3.4.0 이후)에서는 문자열 배열을 사용하여 하위 플롯 패턴(행 및 열)을 설계하고 이를 사용하여 matplotlib를 호출하여 그림을 만들 수 있습니다.pyplot.subplot_continue.
대신에cfig, ax = plt.subplots(3,2)
,사용하다cfig, axs = plt.subplot_mosaic(mosaic)
정의합니다.mosaic
이쪽:
mosaic = [['a', 'b'],
['c', 'd'],
['e', '.']]
이 패턴에서 빈 하위 플롯은 다음과 같이 표시됩니다.'.'
(기본적으로 이 값은 통화에서 매개 변수화될 수 있습니다.)빈 하위 플롯은 생성되지도 않으므로 삭제할 필요가 없습니다.
표시할 축을 선택하려면 다음을 사용합니다.axs[id]
어디에id
모자이크 배열에서 하위 플롯을 식별하는 데 사용되는 문자열입니다.
예:
mosaic = [['b', 'a'], ['.', 'au']]
kw = dict(layout='constrained')
fig, axs = plt.subplot_mosaic(mosaic, **kw)
ax = axs['b']
ax.grid(axis='y')
ax.bar(n, d)
ax = axs['a']
ax.grid(axis='y')
ax.bar(n, prior)
[...]
와 함께subplot_mosaic
빈 하위 플롯을 도입할 수 있을 뿐만 아니라 필요한 모자이크 배열을 만드는 것만으로 여러 행 및/또는 열에 하위 플롯을 만들기 위해 '셀'을 병합할 수도 있습니다. 나머지 코드는 변경되지 않습니다.추가로mosaic
배열일 필요는 없으며 여러 줄의 문자열일 수도 있습니다.예: 다음을 사용하는 복잡한 의미의 그림 구성.
"""
A.C
BBB
.D.
"""
결과:
언급URL : https://stackoverflow.com/questions/10035446/how-can-i-make-a-blank-subplot-in-matplotlib
'programing' 카테고리의 다른 글
@Controller 클래스의 Spring @Value 주석이 속성 파일 내부의 값으로 평가되지 않음 (0) | 2023.07.24 |
---|---|
테이블의 ID에서 다른 테이블의 ID로 MariaDB 합계 크기 (0) | 2023.07.24 |
Intellij IDEA: JPA 유효성 검사를 위한 데이터 소스 지정 (0) | 2023.07.24 |
특정 노드의 mariaDB 데이터베이스 무시 (0) | 2023.07.24 |
파워셸 색상을 재설정하려면 어떻게 해야 합니까? (0) | 2023.07.24 |