From 579ed7632b4052c629f71dac380ce7948a58eb63 Mon Sep 17 00:00:00 2001 From: Danny Staple Date: Tue, 22 Nov 2022 13:15:32 +0000 Subject: [PATCH] Generate the image shown in this section --- .../show_random_distributions.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ch-13/types_of_randomness/show_random_distributions.py diff --git a/ch-13/types_of_randomness/show_random_distributions.py b/ch-13/types_of_randomness/show_random_distributions.py new file mode 100644 index 0000000..2b059f6 --- /dev/null +++ b/ch-13/types_of_randomness/show_random_distributions.py @@ -0,0 +1,35 @@ +from matplotlib import pyplot as plt +import numpy as np + +distribution_size = (2, 500) +uniform_dist = np.random.uniform(low=-1.5, high=1.5, size=distribution_size) +gauss_dist = np.random.normal(loc=0.0, scale=0.5, size=distribution_size) + +def prepare_scatter(ax, data): + ax.set_xlim(-1.5, 1.5) + ax.set_ylim(-1.5, 1.5) + ax.set_aspect(1) + ax.scatter(data[0], data[1]) + data_sd = data.std(1) + data_mean = data.mean(1) + print(data_mean, data_sd) + circle = plt.Circle(data_mean, data_sd[0], color='r', fc=(1,0.6,0.6,0.3)) + ax.add_patch(circle) + +fig = plt.figure() +gs = fig.add_gridspec(2, 2) +uniform_scatter = fig.add_subplot(gs[0, 0]) +gauss_scatter = fig.add_subplot(gs[0, 1]) +uniform_hist = fig.add_subplot(gs[1, 0], sharex = uniform_scatter) +gauss_hist = fig.add_subplot(gs[1, 1], sharex = gauss_scatter) +# fig, ((uniform_scatter, gauss_scatter), (uniform_hist, gauss_hist)) = plt.subplots(2, 2) +prepare_scatter(uniform_scatter, uniform_dist) +prepare_scatter(gauss_scatter, gauss_dist) + +# Plot the histograms +bins=16 +uniform_hist.hist(uniform_dist[0], bins=bins) +gauss_hist.hist(gauss_dist[0], bins=bins) +# fig.tight_layout() + +plt.show()