2013-02-05 4 views
58

파이썬에서 Matplotlib을 사용하여 간단한 x-y 데이터 집합을 그릴 수 있습니다. 비록 내가 plt.show()을 실행할 때 나타나는 Figure View를 사용하여 플롯 된 그래프의 다양한 섹션에서 너무 가까이에 "확대"할 때 x 축 값이 표준 숫자 양식 (1050, 1060)에서 변경되지만 멋진 그래프가 생성됩니다 , 1070 등)을 지수 형식 (예 : +1.057e3으로 표시된 x 축 레이블이있는 1, 1.5, 2.0)의 과학 형식으로 변환합니다.파이썬에서 숫자가 지수 형태로 변경되는 것을 방지하는 방법 matplotlib figure

나는 지수 형식을 사용하는 대신 축의 간단한 번호 매기기를 유지하기를 원합니다. Matplotlib에 이것을 강제 할 수있는 방법이 있습니까?

+1

중복 http://stackoverflow.com/questions/11855363/how- 매트 플롯 제거 축 - 11858063 # 11858063 – tacaswell

답변

81

틱 레이블의 서식은 Formatter 개체에 의해 제어되며, 사용자가 공상적인 것으로 가정하지 않은 경우 ScalerFormatterby default이됩니다. 이 포매터는 가시 값의 부분 변화가 매우 작 으면 상수 시프트를 사용합니다. 이를 방지하려면, 단순히 전원을 끄십시오

plt.plot(arange(0,100,10) + 1000, arange(0,100,10)) 
ax = plt.gca() 
ax.get_xaxis().get_major_formatter().set_useOffset(False) 
plt.draw() 

당신이 일반적으로 과학적 표기법을 피하려면,

ax.get_xaxis().get_major_formatter().set_scientific(False) 

axes.formatter.useoffset rcparam를 통해 전 세계적으로이를 제어 할 수 있습니다.

+1

고마워, 그거야. 중복 질문에 대한 사과 - 나는 게시하기 전에 검색을했지만 내 검색에는 "상대 축 이동"보다는 "과학 표기법"및 "지수 형식"과 같은 용어가 사용되었습니다. 이는 이전 사용자가 사용한 것입니다. – IanRoberts

+0

@IanRoberts 걱정하지 마십시오 – tacaswell

+1

이 변경 사항을 영구히 적용 할 수있는 방법이 있습니까? 나는 과학 표기법 축을 결코 발견하지 못했고, 항상 그것들을 끄집어 냈다. 나는 이것을 위해 rcParam을 볼 수 없었다. – IanRoberts

13

당신은 같은 것을 사용할 수 있습니다 : 당신은 그것을 해제하는 간단한 명령을 사용할 수 있습니다

from matplotlib.ticker import ScalarFormatter, FormatStrFormatter 

ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f')) 
9

을 :

plt.ticklabel_format(useOffset=False) 
+0

감사합니다. 가장 간단한 해결책입니다. – arie64

+0

간단하게 할 일이 있습니다! 감사. – Whir

관련 문제