본문 바로가기
파이썬

파이썬의 로그 Y 축 Bin

by º기록 2021. 1. 11.
반응형

데이터 열의 히스토그램을 만들고 로그 ( y 축 )로 플로팅하려고하는데 다음 코드가 작동하지 않는 이유를 모르겠습니다.

import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('foo.bar')
fig = plt.figure()
ax = fig.add_subplot(111)
plt.hist(data, bins=(23.0, 23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0))
ax.set_xlim(23.5, 28)
ax.set_ylim(0, 30)
ax.grid(True)
plt.yscale('log')
plt.show()

또한 plt.yscale ( 'log') 대신 plt.hist 줄에 Log = true 를 추가해 보았습니다. ax.set_yscale ( 'log') 이지만 아무것도 작동하지 않는 것 같습니다. 빈 플롯을 얻거나 y- 축 이 실제로 로그 (위에 표시된 코드 사용)이지만 플롯 된 데이터가 없습니다 (빈 없음).

 

해결 방법

 

시험

plt.yscale('log', nonposy='clip')


문제는 막대의 하단이 y = 0이고 기본값은 로그 변환을 수행 할 때 유효하지 않은 지점 ( log (0) -> 정의되지 않음)을 마스킹하는 것입니다. 이것을 변경하지만 어느 방향으로 갔는지 기억이 나지 않습니다.) 막대 플롯을 위해 직사각형을 그리려고 할 때 하단 가장자리가 가려집니다-> 직사각형이 없습니다.

 

참조 페이지 https://stackoverflow.com/questions/17952279

 

 

반응형

댓글