2016-03-04 68 views
0

我試圖繪製曲線的重採樣結果,像這樣繪製:的Python和Matplotlib:重採樣情節,如何指定斧

enter image description here

的問題是,我想繪製一條曲線爲好,像這樣:

enter image description here

現在我只能用代碼擺脫這樣的:

import pandas as pd  
data = np.random.randn(100000) 
df = pd.DataFrame(data) 

fig = plt.figure(figsize=(22,4)) 
for i in xrange(1,100): 
    df_resampled = df.sample(frac=0.1, replace=True) 
    ecdf = sm.distributions.ECDF(data) 
    x = np.linspace(min(data), max(data)) 
    y_cdf = ecdf(x) 

    ax1 = fig.add_subplot(1,2,1) 
    plt.plot(x, y_cdf, '-') 

    ax2 = fig.add_subplot(1,2,2) 
    plt.plot(np.log(x), np.log(-np.log(1-y_cdf)),'-') 

我想知道我是否做得對,(使用ax1ax2)。如果有更清晰的代碼?

回答

0

我假設sub_df.sample來自使用pandas,但沒有說明。請注意,除非您提供一些最少的數據,否則人們無法執行您的代碼。請查看:Minimal, Complete, Verifiable example

此外問題不是很清楚,看起來您正在重複一個無需計算的計算。您可以只存儲所有樣本:

samples=[] 
for i in xrange(1,100): 
    sub_df_resampled = sub_df.sample(frac=0.3, replace=True) 
    samples.append(sub_df_resampled) 

然後重新使用它們。 即使如此,我還不清楚您的for循環內的繪圖線如何使用這些樣本。沒有跡象表明您正在繪製的項目會隨樣品更新。

+0

剛更新我的代碼,好像我解決了我的問題。但你仍然可以看看。 – cqcn1991