Я хочу, например, дисперсию набора данных, путем бутстрапа (resample) данных.Python & Matplotlib: Как построить график гистограмм бутстрапа?
from numpy.random import randn
fig,ax = plt.subplots()
bins = arange(-5,6,0.5)
df = pd.DataFrame(randn(3000))
df.hist(ax=ax, bins=bins, alpha = 0.7, normed=True)
count_collection = []
for i in xrange(1,100):
temp_df = df.sample(frac=0.5, replace=True)
temp_df.hist(ax=ax, bins=bins, alpha = 0.25, normed=True)
count, division = np.histogram(temp_df, bins=bins)
count_collection.append(count)
Однако такой сюжет трудно увидеть предел. Можно ли построить верхний/нижний предел гистограммы, поэтому можно увидеть более четкое, может быть, что-то вроде Boxplot для каждого бина?
http://matplotlib.org/_images/boxplot_demo_06.png
или только кривые с верхним/нижним пределом, чтобы указать диапазон?
Моя главная трудность извлечения/мин значение максимального для каждого бина (The count_collection
)
UPDATE:
Что бы быть хорошим способом, чтобы построить диапазон?
count_collection = np.array(count_collection)
mx = np.max(count_collection,0)
mn = np.min(count_collection,0)
ax.plot(division[1:]-0.25, mx, '_', mew=1)
ax.plot(division[1:]-0.25, mn, '_', mew=1)
Я считаю, что это до сих пор трудно смотреть, любое предложение?
Вы можете посмотреть на функции [ 'numpy.histogram'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html), который делает биннинга без каких-либо заговоров. Вы можете использовать его, чтобы получить данные, а затем нарисовать их, как вам нравится. – BrenBarn
@BrenBarn Я знаю 'np.histogram', и я действительно использую его для сбора всех данных. Я просто не знаю, как получить значение max/min из коллекции значений. – cqcn1991
Как примечание стороны, не следует ли 'count' собирать' temp_df'? В противном случае, похоже, всего 100 повторений 'df' ... – Aguy