반응형
데이터 열의 히스토그램을 만들고 로그 ( 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 cv2.imread는 항상 NoneType을 반환합니다. (0) | 2021.01.11 |
---|---|
파이썬 Python : 루프에서 모든 텍스트 파일 행 읽기 (0) | 2021.01.11 |
파이썬 'python'은 내부 또는 외부 명령으로 인식되지 않습니다. (0) | 2021.01.11 |
파이썬 예 또는 아니요 출력 Python (0) | 2021.01.11 |
파이썬의 차이점-유닉스 시스템에서 getmtime ()과 getctime () (0) | 2021.01.11 |
댓글