2016-09-12 3 views
0

matplotlib를 사용하여 간단한 플롯을 실행했습니다. 내 x 축과 y 축은 각각 0,0에서 시작합니다. matplotlib 플롯은 2 축에 해당하는 2 개의 0을 표시합니다. 나는 원한다면 0을 원한다. (가능하다면 시작점의 중간 어딘가에). 어떻게이 작업을 수행 할 수 있습니까?python matplotlib 플롯의 단일 원점 값

여기 내가 사용하는 작업은 다음과 같습니다

import matplotlib.pyplot as plt 

plt.plot([1,2,3], [4,5,6]) 
plt.xlim([0,5]) 
plt.ylim([0,10]) 
plt.show() 

Matplotlib Plot

업데이트 : @nostradamus '솔루션을 사용하고는 제로 중 하나를 제거있어

. 가능하다면 제로를 약간 중심에두고 싶습니다.

내가 사용 :

plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.gca().yaxis.get_majorticklabels()[0].set_x(-0.05) 

enter image description here

나는 이것의 반대를합니다. y 축의 0을 아래로 이동 시키거나 x 축의 원점을 왼쪽으로 옮기고 싶습니다. 시도 :

plt.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.gca().xaxis.get_majorticklabels()[0].set_x(-0.05) 

작동하지 않습니다. 제로에 대한 아래쪽과 왼쪽 경계는 해당 영역을 벗어나지 않도록 설정되어 있다고 생각합니다.

답변

1

키워드는 당신이 upper, lower 또는 both 틱 레이블을 중단 할 수 있도록 허용하는 prune이다. 여기에서 x 축의 0 없애는 작업의 예는 다음과 같습니다

import matplotlib.pyplot as plt 
from matplotlib.ticker import MaxNLocator 

plt.plot([1,2,3], [4,5,6]) 
plt.xlim([0,5]) 
plt.ylim([0,10]) 
plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.show() 

두 번째 부분은 (구석에 남아있는 제로를 이동하는) 훨씬 더 어려운 것 같다. 당신이 (즉 plt.gca().yaxis.get_majorticklabels()[0].set_y(-0.05)는 아무것도하지 않고있다)

plt.gca().yaxis.get_majorticklabels()[0].set_x(-0.05) 

는 그러나, 나는 해당 축의 하한 아래로 이동하는 방법을 알아낼 수 없습니다 사용하여 하나의 눈금 레이블을 이동할 수 있습니다 것으로 보인다.

+0

고마워요. 나는 '가지 치기'에 대해 몰랐다. 그리고 그래, pyplot을 사용하여 만든 그래프를 편집하는 것은 정말 어려운 것 같다. –

관련 문제