簡體   English   中英

在Python中使用對數刻度mathplotlib嗎?

[英]Log scale mathplotlib in Python?

我正在嘗試擬合對數正態曲線,但不確定如何將y(和x軸)更改為對數比例? 我嘗試使用日志空間而不是linspace,但出現錯誤

 OverflowError: cannot convert float infinity to integer

我試過了:

 x = np.linspace(np.log(min(bins)),np.log(max(bins)),10000)

但這似乎也不奏效。 我已附上圖表,向您展示我的意思。 我真的看不到400左右發生了什么,所以我想對y進行縮放(也對x進行對比例比較)

from collections import Counter
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
from scipy.stats import lognorm
import numpy as np

data = list(pre_data)
params = (0.40951093774076597, 5.1802137214177684, 60.158303995566413)
shape, loc, scale = params[0], params[1], params[2]
print params
prob = 1-lognorm.cdf(388,shape,loc=params[1], scale=params[2])
print prob * 2994
count, bins, ignored = plt.hist(data,100,normed=True)

mu = np.mean(np.log(data))
sigma = np.std(np.log(data))
x = np.linspace(min(bins),max(bins),10000)
pdf = (np.exp(-(np.log(x)-mu)**2 / (2 * sigma**2)) / (x * sigma * np.sqrt(2*np.pi)))
plt.plot(x,pdf,color='r',linewidth= 2)

在此處輸入圖片說明

plt.xscale('log')
plt.yscale('log')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM