ProgramingTip

matplotlib에서 x 축 변경

bestdevel 2020. 10. 7. 07:57
반응형

matplotlib에서 x 축 변경


Matlab을 사용하여 여기에서 만들었습니다.

여기에 이미지 설명 입력

matplotlib를 사용하여 x 축은 100000, 200000, 300000과 같은 큰 숫자를 그립니다. 100000, 200000, 300000임을 나타냅니다. 내기 위해 1, 2, 3 및 10 ^ 5와 같은 것을 갖고 싶습니다.

matplotlib에서 규모를 만드는 간단한 방법이 있습니까?


용도 :matplotlib.pyplot.ticklabel_format

import matplotlib.pyplot as plt
...
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,0))

이 과학적 표기법 (예 a x 10^b:)을 x 축 눈금에 적용합니다.


이것은 귀하의 질문 본문에있는 질문 중 하나에 대한 원래 질문에 대한 답변이 아닙니다.

내 이름이 이상해 보이지 않도록 약간의 서문 :

import matplotlib
from matplotlib import rc
from matplotlib.figure import Figure
ax = self.figure.add_subplot( 111 )

앞서 언급했듯이 ticklabel_format을 사용하여 matplotlib가 크거나 작은 값에 과학적 표기법을 사용하는 것이 좋습니다.

ax.ticklabel_format(style='sci',scilimits=(-3,4),axis='both')

rcParams의 플래그 (matplotlib import rcParams에서)를 사용하거나 직접 설정하여 표시되는 방식에 영향을 줄 수 있습니다. 나는 '1e'와 'x10 ^'사이의 과학적 표기법을 다음보다 더 우아한 방식으로 바꾸는 방법을 찾지 못합니다.

ax.xaxis.major.formatter._useMathText = True

이것은 당신에게 더 많은 Matlab-esc를 제공하고 더 나은 모습을 보여줄 것입니다. 다음이 똑같이해야 생각합니다.

rc('text', usetex=True)


스칼라 포맷터 지원은 지수를 수집합니다. 문서는 다음과 가능합니다.

class matplotlib.ticker.ScalarFormatter (useOffset = True, useMathText = False, useLocale = None) 기준 : matplotlib.ticker.Formatter

틱 위치는 평범한 오래된 숫자입니다. useOffset == True이고 데이터 범위가 데이터 평균보다 훨씬 작 으면 으면 눈금 레이블이 의미가 어느 정도 결정됩니다. 과학적 표기법은 데이터 <10 ^ -n 또는 데이터> = 10 ^ m에 사용됩니다. 여기서 n 및 m은 set_powerlimits ((n, m))를 사용하여 전력 한계입니다. 이들에 대한 언급은 axes.formatter.limits rc 변수에 의해 제어됩니다.

당신의 기술은 다음과 달라집니다.

xfmt = ScalarFormatter()
xfmt.set_powerlimits((-3,3))  # Or whatever your limits are . . .
{{ Make your plot }}
gca().xaxis.set_major_formatter(xfmt)

형식으로 지수를 얻으 x10^5려면 ScalarFormatter를 useMathText=True.

애프터 이미지

다음을 사용할 수도 있습니다.

xfmt.set_useOffset(10000)

다음과 같은 결과를 얻으려면 :

여기에 이미지 설명 입력


나는 간단한 해결을 찾음

pylab.ticklabel_format(axis='y',style='sci',scilimits=(1,4))

참고 URL : https://stackoverflow.com/questions/11577665/change-x-axes-scale-in-matplotlib

반응형