내가 아는 한 히스토그램 함수의 Log = True 옵션은 y 축만을 나타냅니다.
P.hist(d,bins=50,log=True,alpha=0.5,color='b',histtype='step')
log10에서 동일한 간격으로 bin이 필요합니다. 이것을 할 수있는 것이 있습니까?
답변:
logspace ()를 사용하여 기하학적 시퀀스를 만들고 bins 매개 변수에 전달합니다. 그리고 xaxis의 스케일을 로그 스케일로 설정하십시오.
import pylab as pl
import numpy as np
data = np.random.normal(size=10000)
pl.hist(data, bins=np.logspace(np.log10(0.1),np.log10(1.0), 50))
pl.gca().set_xscale("log")
pl.show()
np.logspace(0.1,1.0,...)
의 범위 만듭니다 10**0.1
로를 10**1.0
하지에서, 0.1
에1.0
np.logspace(np.log10(0.1),np.log10(1.0),50)
명시된 것 외에도 pandas 데이터 프레임에서이 작업을 수행하는 것도 작동합니다.
some_column_hist = dataframe['some_column'].plot(bins=np.logspace(-2, np.log10(max_value), 100), kind='hist', loglog=True, xlim=(0,max_value))
빈을 정규화하는 데 문제가있을 수 있다는 점에주의하겠습니다. 각 bin은 이전 bin보다 크므로 플로팅하기 전에 주파수를 정규화하려면 크기로 나누어야하며 내 솔루션도 HYRY의 솔루션도이를 설명하지 않는 것 같습니다.