2014-10-31 2 views
2

다음과 같은 간단한 상황을 상상해 : 그 AX2가 동일한 폭을 갖도록같은 크기는 그들 중 하나 set_aspectratio 경우 "동일"에

import numpy as np 
import matplotlib.pyplot as plt 

fig, (ax1, ax2) = plt.subplots(1, 2) 

ax1.plot(np.arange(10)) 
ax1.set_aspect("equal") 

ax2.plot(np.arange(10), np.arange(0, 1, .1)) 

plt.show() 

Example Figure

최고의/가장 쉬운 해결책이 될 것입니다 무엇을/ax1의 높이, ax2의 aspectratio가 무엇이든간에?

특정 사례를 들어
+0

문제는 AX1이 갖고 싶어한다는 것을 의미 사각형 모양이고, ax2가 일치하도록합니다. 이 올바른지? – farenorth

+0

예 정확함 – Sebastian

답변

1

, 당신은 다음과 같은 설정, 10 ax2의 화면 비율을 설정할 수 있습니다

import numpy as np 
import matplotlib.pyplot as plt 

fig, (ax1, ax2) = plt.subplots(1, 2) 

ax1.plot(np.arange(10)) 
ax1.set_aspect("equal") 

ax2.plot(np.arange(10), np.arange(0, 1, .1)) 

# Determining the ranges 
x1,x2 = ax2.get_xlim() 
y1,y2 = ax2.get_ylim() 
xRange = x2-x1 
yRange = y2-y1 

ax2.set_aspect(xRange/yRange) 

plt.show() 

enter image description here

건배

+0

해결책 주셔서 감사합니다! 일반적인 해결책은 아니지만 문제를 해결하는 데 도움이되었습니다. – Sebastian

+0

마지막 변경 사항이 적합한 지 알려주세요. 건배 – mrcl

+0

나는 같은 해결책을 내놓았다. :) 그러나, 모든 경우에 작동하지는 않습니다. if ax2.plot ([3, 4], [24, 32]). 어쨌든, 나는 당신이 게시 한 해결책으로 떠날 수있다 :) 고마워! – Sebastian

관련 문제