복붙노트

[PYTHON] 파이썬에서 matplotlib로 대수 축 플롯

PYTHON

파이썬에서 matplotlib로 대수 축 플롯

matplotlib를 사용하여 하나의 로그 축으로 그래프를 플롯하려고합니다.

필자는 문서를 읽었지 만 구문을 이해할 수는 없습니다. 나는 아마 그것이 플롯 인수에서 '규모 = 선형'과 같은 간단한 것임을 알고 있지만, 제대로 할 수는 없습니다.

샘플 프로그램 :

import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)

line, = ax.plot(a, color='blue', lw=2)
pylab.show()

해결법

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

    1.Axes.set_yscale 메서드를 사용할 수 있습니다. 이를 통해 Axes 객체를 만든 후에 크기를 변경할 수 있습니다. 또한 필요한 경우 사용자가 스케일을 선택할 수 있도록 컨트롤을 만들 수 있습니다.

    Axes.set_yscale 메서드를 사용할 수 있습니다. 이를 통해 Axes 객체를 만든 후에 크기를 변경할 수 있습니다. 또한 필요한 경우 사용자가 스케일을 선택할 수 있도록 컨트롤을 만들 수 있습니다.

    추가 할 관련 행은 다음과 같습니다.

    ax.set_yscale('log')
    

    '선형'을 사용하여 선형 눈금으로 다시 전환 할 수 있습니다. 코드는 다음과 같습니다.

    import pylab
    import matplotlib.pyplot as plt
    a = [pow(10, i) for i in range(10)]
    fig = plt.figure()
    ax = fig.add_subplot(2, 1, 1)
    
    line, = ax.plot(a, color='blue', lw=2)
    
    ax.set_yscale('log')
    
    pylab.show()
    

  2. ==============================

    2.우선, 파일 랩과 파이롯트 코드를 섞어 쓰는 것은 너무 깔끔하지 않습니다. 더 많은 것은 pyplot 작풍은 pylab 사용에 선호된다.

    우선, 파일 랩과 파이롯트 코드를 섞어 쓰는 것은 너무 깔끔하지 않습니다. 더 많은 것은 pyplot 작풍은 pylab 사용에 선호된다.

    다음은 pyplot 함수 만 사용하여 약간 정리 된 코드입니다.

    from matplotlib import pyplot
    
    a = [ pow(10,i) for i in range(10) ]
    
    pyplot.subplot(2,1,1)
    pyplot.plot(a, color='blue', lw=2)
    pyplot.yscale('log')
    pyplot.show()
    

    관련 함수는 pyplot.yscale ()입니다. 객체 지향 버전을 사용하는 경우 Axes.set_yscale () 메서드로 대체하십시오. pyplot.xscale () (또는 Axes.set_xscale ())을 사용하여 X 축의 축척을 변경할 수도 있습니다.

    내 질문을 확인하십시오 '로그'와 'symlog'의 차이점은 무엇입니까? matplotlib에서 제공하는 그래프 스케일의 몇 가지 예를 확인하십시오.

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

    3.plot 대신 semilogy를 사용하기 만하면됩니다.

    plot 대신 semilogy를 사용하기 만하면됩니다.

    from pylab import *
    import matplotlib.pyplot  as pyplot
    a = [ pow(10,i) for i in range(10) ]
    fig = pyplot.figure()
    ax = fig.add_subplot(2,1,1)
    
    line, = ax.semilogy(a, color='blue', lw=2)
    show()
    
  4. ==============================

    4.일부 의견은 ax.set_yscale ( 'log')이 "가장 좋은"솔루션이라고 언급 한 이래로 약간 논쟁의 여지가 있습니다. 반론이 만기가 될 수 있다고 생각했습니다. 히스토그램과 막대 그래프에 ax.set_yscale ( 'log')을 사용하지 않는 것이 좋습니다. 내 버전 (0.99.1.1)에서 일부 렌더링 문제가 발생합니다.이 문제가 얼마나 일반적인 것인지 잘 모릅니다. 그러나 bar와 hist 모두 y 스케일을 log로 설정하는 선택적 인수가 있습니다. 이는 잘 작동합니다.

    일부 의견은 ax.set_yscale ( 'log')이 "가장 좋은"솔루션이라고 언급 한 이래로 약간 논쟁의 여지가 있습니다. 반론이 만기가 될 수 있다고 생각했습니다. 히스토그램과 막대 그래프에 ax.set_yscale ( 'log')을 사용하지 않는 것이 좋습니다. 내 버전 (0.99.1.1)에서 일부 렌더링 문제가 발생합니다.이 문제가 얼마나 일반적인 것인지 잘 모릅니다. 그러나 bar와 hist 모두 y 스케일을 log로 설정하는 선택적 인수가 있습니다. 이는 잘 작동합니다.

    참고 문헌 : http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar

    http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist

  5. ==============================

    5.대수의 기수를 변경하려면 다음을 추가하십시오.

    대수의 기수를 변경하려면 다음을 추가하십시오.

    plt.yscale('log',basey=2) 
    # where basex or basey are the bases of log
    
  6. ==============================

    6.그래서 단순한 API를 사용하고 있다면 (나는 ipython에서 많이 사용한다.) 간단히 말해서

    그래서 단순한 API를 사용하고 있다면 (나는 ipython에서 많이 사용한다.) 간단히 말해서

    yscale('log')
    plot(...)
    

    희망이 사람이 간단한 대답을 찾는 데 도움이! :).

  7. from https://stackoverflow.com/questions/773814/plot-logarithmic-axes-with-matplotlib-in-python by cc-by-sa and MIT license