我正在尝试绘制曲线的重采样结果,如下所示:
问题是我想绘制其他曲线,如下:
现在我只能使用这样的代码:
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)),'-')
我想知道我做得对吗,(使用ax1
和ax2
)。如果有更清洁的代码?
答案 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循环中的绘图线如何使用这些样本。没有迹象表明你正在绘制的项目是用样本更新的。