Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
dsc-courses
GitHub Repository: dsc-courses/dsc10-2022-fa
Path: blob/main/lectures/lec18/lec18.py
3058 views
1
# Originally written by... I don't know? Janine? Justin?
2
# Modified in Winter 2022 by Suraj to draw histograms
3
4
from matplotlib.animation import FuncAnimation
5
import matplotlib.pyplot as plt
6
import numpy as np
7
8
def sampling_animation(population):
9
sizes = np.arange(1, 251, 5)
10
medians = np.array([])
11
np.random.seed(4242)
12
for _ in range(sizes[-1]):
13
s = population.sample(500)
14
m = np.median(s.get('TotalWages'))
15
medians = np.append(medians, m)
16
17
bins = np.arange(60000, 85000, 1000)
18
n, _ = np.histogram(medians[:1], bins)
19
20
def prepare_animation(bar_container):
21
def animate(i):
22
plot_data = medians[:sizes[i]]
23
n, _ = np.histogram(plot_data, bins)
24
for count, rect in zip(n, bar_container.patches):
25
rect.set_height(count)
26
return bar_container.patches
27
return animate
28
29
fig, ax = plt.subplots(figsize=(10, 5))
30
_, _, bar_container = ax.hist(medians, bins, density=True,
31
ec='w');
32
ax.set_ylim(top=35)
33
34
ani = FuncAnimation(fig,
35
prepare_animation(bar_container),
36
frames=50,
37
repeat=False, blit=True);
38
39
return ani, medians
40
41