2013-02-14 3 views
2

plt.axis('equal') 명령을 사용하여 눈금이 1 : 1 인 산점도를 만들었지 만 출력에 양쪽에 너무 많은 공백이 포함되어 있습니다. 그 공백을 제거하는 방법을 찾고 있는데, 그 그림은 더 직사각형이지만, 나는 아직 성공하지 못했습니다.matplotlib의 눈금 수정

import matplotlib.pyplot as plt 


E = [892.255, 837.587, 1227.914, 1212.741, 1053.381] 
N = [395.173, 828.072, 662.757, 115.177, 519.491] 
Labels = ['J1', 'J3', 'J5', 'C'] 

plt.scatter(E,N) 
plt.annotate('J1', xy=(E[0] - 15, N[0] + 15)) 
plt.annotate('J3', xy=(E[1] + 10, N[1] + 5)) 
plt.annotate('J5', xy=(E[2] + 10, N[2] + 5)) 
plt.annotate('C', xy=(E[3] + 5, N[3] + 5)) 
plt.annotate('V1', xy=(E[4] + 15, N[4] - 20)) 
plt.annotate('V2', xy=(1015, 810)) 

plt.annotate('102,96', xy=(850, 540), size=8.5) 
plt.annotate('29,99', xy=(965,655), size=8.5) 
plt.annotate('65,13', xy=(1090, 640), size=8.5) 
plt.annotate('119,83', xy=(1180, 500), size=8.5) 
plt.annotate('82,09', xy=(980, 370), size=8.5) 

plt.plot([E[0], E[4]], [N[0], N[4]], color='k', linestyle='-', linewidth=1) 
plt.plot([E[1], E[4]], [N[1], N[4]], color='k', linestyle='-', linewidth=1) 
plt.plot([E[2], E[4]], [N[2], N[4]], color='k', linestyle='-', linewidth=1) 
plt.plot([E[3], E[4]], [N[3], N[4]], color='k', linestyle='-', linewidth=1) 
plt.plot([1011.591064, E[4]], [817.704131, N[4]], color='k', linestyle='--', linewidth=1) 
plt.scatter(E[4],N[4], s=6500,facecolors='none', color='k') 


plt.grid() 
plt.xlabel('E (m)') 
plt.ylabel('N (m)') 
#plt.ylim((100,900)) 
#plt.xlim((800,1250)) 
plt.axis('equal') 
plt.axis([800, 1250, 100, 900]) 
plt.show() 

생산 : 큰이지만, 800에서 1300으로 x 축이 이동하면 더 좋을 것이다

output

이 작업을 수행 할 수있는 방법이 있나요 여기 내 코드입니다 ?

답변

4

"datalim" 대신 "조절 가능"매개 변수를 "box"으로 설정하고 싶습니다.

코드 끝에 plt.gca().set(adjustable='box')과 비슷한 코드를 추가하기 만하면됩니다.

이 변경 수율, 위의 코드를 사용 :

enter image description here

(나는 또한 가장자리 위로 텍스트 매달려의 일부를 피하기 위해 800-1300 대신 800-1250로 x 축 제한을 변경 자동 배치 된 진드기는 너무 빽빽하지 않습니다.)

관련 문제