본문 바로가기
파이썬

파이썬 Python Pandas 히스토그램 로그 스케일

by º기록 2020. 12. 26.
반응형

팬더로 상당히 간단한 히스토그램을 만들고 있습니다.

results.val1.hist (bins = 120)

잘 작동하지만 일반적으로 (아마도 잘못) 이렇게하는 y 축에 로그 스케일을 갖고 싶습니다.

fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111)
plt.plot(np.random.rand(100))
ax.set_yscale('log')
plt.show()

plt 명령을 pandas 명령으로 바꾸면 다음과 같이됩니다.

fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111)
results.val1.hist(bins=120)
ax.set_yscale('log')
plt.show()

동일한 오류의 여러 사본이 발생합니다.

Jan  9 15:53:07 BLARG.local python[6917] <Error>: CGContextClosePath: no current point.

로그 스케일 히스토그램을 얻었지만 막대의 맨 윗줄 만 있고 수직 막대 나 색상은 없습니다. 끔찍하게 잘못하고 있습니까? 아니면 판다가 지원하지 않습니까?

Paul H의 코드에서 hist 호출에 bottom = 0.1 을 추가하면 문제가 해결됩니다. 어떤 종류의 0으로 나누기 등이있는 것 같습니다.

 

해결 방법

 

데이터 없이는 진단하기 어렵습니다. 다음은 나를 위해 작동합니다.

import numpy as np
import matplotlib.pyplot as plt
import pandas
series = pandas.Series(np.random.normal(size=2000))
fig, ax = plt.subplots()
series.hist(ax=ax, bins=100, bottom=0.1)
ax.set_yscale('log')

여기에 이미지 설명 입력

여기서 핵심은 히스토그램 함수에 ax 를 전달하고 로그 스케일에 0 값이 없기 때문에 bottom 을 지정한다는 것입니다.

 

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

 

 

반응형

댓글