Python& Matplotlib:重新取样图,如何指定用

时间:2016-03-04 03:37:20

标签: 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)。如果有更清洁的代码?

1 个答案:

答案 0 :(得分: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循环中的绘图线如何使用这些样本。没有迹象表明你正在绘制的项目是用样本更新的。