복붙노트

[PYTHON] Matplotlib yaxis 범위는 오프셋 값이 아닌 절대 값을 사용하여 표시됩니까?

PYTHON

Matplotlib yaxis 범위는 오프셋 값이 아닌 절대 값을 사용하여 표시됩니까?

numpy 데이터 (usec 타임 스탬프 델타)의 다음 범위가 있습니다.

array([ 4.312,  4.317,  4.316,  4.32 ,  4.316,  4.316,  4.319,  4.317,
    4.317,  4.316,  4.318,  4.316,  4.318,  4.316,  4.318,  4.317,
    4.317,  4.317,  4.316,  4.317,  4.318,  4.316,  4.318,  4.316,
    4.318,  4.316,  4.317,  4.317,  4.318,  4.316,  4.317,  4.317,
    4.317,  4.317,  4.317,  4.316,  4.319,  4.315,  4.319,  4.315,
    4.319,  4.315,  4.316,  4.319,  4.317,  4.317,  4.317,  4.318,
    4.315,  4.317,  4.317,  4.317,  4.319,  4.314,  4.32 ,  4.315,
    4.317,  4.318,  4.315,  4.318,  4.317,  4.317,  4.317,  4.316,
    4.317,  4.318,  4.317,  4.317,  4.317,  4.315,  4.319,  4.317,
    4.315,  4.319,  4.316,  4.318,  4.318,  4.315,  4.318,  4.317,
    4.317,  4.321])

matplotlib.pyplot으로 플롯 할 때 :

 import matplotlib.pyplot as plt
 plt.plot( deltas ) 
 plt.show()

나는 다음 음모를 얻는다. Y 축은 왜 그런 식으로 축척됩니까? Y 축을 데이터의 오프셋이 아닌 데이터로 레이블링하려면 어떻게해야합니까? 때로는 플롯이 "+ 4.nnn"인 경우가 있습니다 (데이터 범위에 따라 다름).

"이상하게"그려져 있습니다.

플롯 된 "올바르게":

해결법

  1. ==============================

    1.useOffset을 False로 설정하십시오.

    useOffset을 False로 설정하십시오.

    ax = plt.gca()
    ax.ticklabel_format(useOffset=False)
    
  2. ==============================

    2.당신은 또한 사용할 수 있습니다

    당신은 또한 사용할 수 있습니다

    ax = plt.gca()
    ax.set_yticklabels(ax.get_yticks())
    

    나는 @ HYRY의 대답을 더 좋아하지만.

  3. ==============================

    3.이 답변은 나를 위해 효과가 글로벌 설정으로 오프셋을 비활성화 제안 :

    이 답변은 나를 위해 효과가 글로벌 설정으로 오프셋을 비활성화 제안 :

    matplotlib.rcParams['axes.formatter.useoffset'] = False
    
  4. from https://stackoverflow.com/questions/9303728/matplotlib-yaxis-range-display-using-absolute-values-rather-than-offset-values by cc-by-sa and MIT license