[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.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.우선, 파일 랩과 파이롯트 코드를 섞어 쓰는 것은 너무 깔끔하지 않습니다. 더 많은 것은 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.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.일부 의견은 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.대수의 기수를 변경하려면 다음을 추가하십시오.
대수의 기수를 변경하려면 다음을 추가하십시오.
plt.yscale('log',basey=2) # where basex or basey are the bases of log
-
==============================
6.그래서 단순한 API를 사용하고 있다면 (나는 ipython에서 많이 사용한다.) 간단히 말해서
그래서 단순한 API를 사용하고 있다면 (나는 ipython에서 많이 사용한다.) 간단히 말해서
yscale('log') plot(...)
희망이 사람이 간단한 대답을 찾는 데 도움이! :).
from https://stackoverflow.com/questions/773814/plot-logarithmic-axes-with-matplotlib-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 사전 키 이름 바꾸기 (0) | 2018.10.02 |
---|---|
[PYTHON] __hash __ ()을 구현하는 정확하고 좋은 방법은 무엇입니까? (0) | 2018.10.02 |
[PYTHON] Matplotlib은 틱 레이블 글꼴 크기를 더 작게 만듭니다. (0) | 2018.10.02 |
[PYTHON] 메소드의 반환 유형이 파이썬에서 클래스 자체와 동일한 지 어떻게 지정합니까? (0) | 2018.10.02 |
[PYTHON] Python 3.6의 변수 주석은 무엇입니까? (0) | 2018.10.02 |