축 배열의 PDF를 만듭니다. 때로는 페이지가 가득 차 있지는 않습니다. 즉 모든 축에 데이터가있는 것은 아닙니다. 이 경우 사용되지 않는 축을 PDF에 표시하지 않기를 원합니다. 하지만 레이아웃을 사용하는 것과 같게하고 싶습니다. 나는 겹치지 않는 축과 ylabel을 얻기 위해 tight_layout()을 사용하고 있습니다.축 배열이 불완전한 matplotlib에서 tight_layout()을 사용합니다.
다음 코드는 먼저 축이 사용 된 경우 사용되지 않는 것들 (tight_layout이 제대로 작동하지 않음)을 삭제 한 다음 어떻게하면 표시되지 않도록 설정했는지를 보여줍니다. tight_layout ()이 (가)
AttributeError: 'NoneType' object has no attribute 'is_bbox'
오류로 실패합니다.
import numpy as np
import matplotlib.pyplot as plt
def prep_figure():
plt.close('all')
fig, axs = plt.subplots(4,3, figsize=(11,8.5))
axs=np.concatenate(axs)
for ii in range(5):
axs[ii].plot([1,2,3],[-10,-1,-10])
axs[ii].set_ylabel('ylabel')
axs[ii].set_xlabel('xlabel')
return fig,axs
fig,axs=prep_figure()
plt.tight_layout()
plt.show()
plt.savefig('tmp.pdf',)
# Try deleting extra axes
fig,axs=prep_figure()
for ii in range(5,12):
fig.delaxes(axs[ii])
plt.tight_layout()
plt.show()
plt.savefig('tmpd.pdf',)
# Try hiding extra axes
fig,axs=prep_figure()
for ii in range(5,12):
axs[ii].set_visible(False)
plt.tight_layout()
plt.show()
plt.savefig('tmph.pdf',)
첫 번째 버전의 레이아웃을 원하지만 여분의 축이 보이지 않습니다.