2012-05-10 4 views
0

나는이 질문에 답하기 위해 온라인으로 많은 게시물과 답변을 보았다.
bbox_inches = 'tight'을 사용하면 범례가 사라집니다.플롯의 상단에서만 공간을 제거하는 방법 - matplotlib

이 내 그림 중 하나입니다 enter image description here

나는 플롯 프레임 외부의 전설을 가지고 있기 때문에, 난 단지 상단과 하단 공백을 제거하고 싶습니다.

누구나 맨 위 공백을 제거하는 방법을 알고 있습니까?

고맙습니다.

답변

1

subplots_adjust()을 사용해 보셨습니까? 예를 들어,이 질문에 대한 @DaveP의 대답을 참조하십시오. Reduce left and right margins in matplotlib plot

또한 @Tian Chu의 답을 같은 질문으로 살펴보십시오.

편집 : 이것은 나를 위해 작동합니다 : 당신은 이미지와이를 달성 할 수있는 경우

import matplotlib.pyplot as plt 
fig=plt.figure() 
ax=fig.add_subplot(111) 
ax.plot([1,2,3],[5,6,7],'gs-') 
plt.subplots_adjust(top=0.99, right=0.99) 
plt.show() 
+0

네, 저는이 해답을 보았습니다. 그러나 아마 내 계획의 절반이 사라져 잘못된 값을 사용했을 것입니다. 다시 시도하고 알려 드리겠습니다. – pavid

+1

@pavid : @drootang의 주석에 언급 된 가능성이 있습니다 :'subplots_adjust'의 인수는 매개 변수에 할당 된 값입니다. 상위 여백은 '5 %'입니다. 그림 크기는'top = 0.95'를 사용합니다. –

+0

좋아, 그게 문제라고 생각했는데, 0.05를 사용했습니다. .. – pavid

1

대개 이미 알았 듯이 매우 안정적으로 작동하지 않기 때문에 일반적으로 bbox_inches = 'tight' 기능을 사용하지 않습니다. 차라리 경계가있는 PDF를 만든 다음 외부 도구를 사용하여 자르겠습니다. 파이썬에서이 원활한 작업을 수행하려면, 내가 여기

os.system('pdfcrop %s %s &> /dev/null &'%(pdf_in, pdf_out)) 

사용 pdf_in는하기 matplotlib에서 생산 pdf_out는 최종 결과가 될 것입니다 PDF입니다.

+0

알고 계십니까? 자동 이미지를 생성하려고합니다. – pavid

+0

'이미지'는 무엇을 의미합니까? 픽셀 기반 형식? 이 전략은 자르기 작업을 수행하는 외부 프로그램이있는 한 모든 형식에서 작동합니다. www.imagemagick.org이 도움이 될 것입니다 ... –

+0

@pavid pdfcrop뿐 아니라 imagemagick을 사용하여 convert -trim FOO.png만큼 간단합니다. 원하는 경우 os.system 호출을 사용하여 "자동"방식으로 작업 할 수 있습니다. – Hooked

관련 문제