2013-01-18 3 views
1

기본적으로 플로팅 된 첫 번째 그래프에 따라 그래프의 시작점을 잠그고 싶습니다.Matplotlib : 지정된 x 축 범위 내에서 두 개의 그래프 플로팅

내가 이렇게하면.

import matplotlib.pyplot as plt 
plt.plot([7,8,9,10], [1,4,9,16], 'yo') 
plt.plot([1,9,11,12], [1,4,9,16], 'ro') 
plt.show() 

x 축의 시작점을 7로 제한하여 두 번째 플롯의 (1,1)이 제거됩니다.

이 방법이 있습니까? 나는 그것을 스스로 추적 할 수 있었지만, 이것을 처리하기 위해 무언가가 내장되어 있는지 궁금 할뿐입니다.

감사합니다.

답변

5

하기 matplotlib는 두 가지 방법으로 제공

import matplotlib.pyplot as plt 
plt.plot([7,8,9,10], [1,4,9,16], 'yo') 
plt.plot([1,9,11,12], [1,4,9,16], 'ro') 
plt.xlim(xmin=7) 
plt.show() 

또는 더 객체 지향 방법을

import matplotlib.pyplot as plt 
fig, ax = plt.subplots() 
ax.plot([7,8,9,10], [1,4,9,16], 'yo') 
ax.plot([1,9,11,12], [1,4,9,16], 'ro') 
ax.set_xlim(xmin=7) 
plt.show() 

당신은 IPython를 사용하지 않는 경우, I 축 오브젝트를 생성 한 다음 ax.<Tab>을 입력하고 모든 옵션을 볼 수 있기 때문에 매우 좋습니다. 자동 완성은이 경우 훌륭한 것입니다. 비늘을 모두 잠글 것

ax = plt.gca() 
ax.autoscale(enable=False) 

(당신이 할 수있는 x와 y 별도로뿐만 아니라) :

3

짧은 설명 : plt.xlim(). 긴에서

:

import matplotlib.pyplot as plt 
x1, y1 = ([7,8,9,10], [1,4,9,16]) 
plt.plot(x1, y1, 'yo') 
plt.xlim(min(x1), max(x1)) 
plt.plot([1,9,11,12], [1,4,9,16], 'ro') 
plt.show() 
3

당신은 자동 스케일링 첫번째 플롯 (doc) 후 전원을 켤 수 있습니다.

+0

아주 멋지다. 나는 그 방법에 대해 몰랐다. –

관련 문제