diff --git a/regression/lecture/figures/lin_regress.pdf b/regression/lecture/figures/lin_regress.pdf index 2c5ccb9..f34ba49 100644 Binary files a/regression/lecture/figures/lin_regress.pdf and b/regression/lecture/figures/lin_regress.pdf differ diff --git a/regression/lecture/figures/lin_regress_abscissa.pdf b/regression/lecture/figures/lin_regress_abscissa.pdf deleted file mode 100644 index 02a5af1..0000000 Binary files a/regression/lecture/figures/lin_regress_abscissa.pdf and /dev/null differ diff --git a/regression/lecture/figures/lin_regress_intercept.pdf b/regression/lecture/figures/lin_regress_intercept.pdf new file mode 100644 index 0000000..ace13cc Binary files /dev/null and b/regression/lecture/figures/lin_regress_intercept.pdf differ diff --git a/regression/lecture/figures/lin_regress_slope.pdf b/regression/lecture/figures/lin_regress_slope.pdf index 004a892..f4f08c0 100644 Binary files a/regression/lecture/figures/lin_regress_slope.pdf and b/regression/lecture/figures/lin_regress_slope.pdf differ diff --git a/regression/lecture/lin_regress.py b/regression/lecture/lin_regress.py new file mode 100644 index 0000000..6354753 --- /dev/null +++ b/regression/lecture/lin_regress.py @@ -0,0 +1,91 @@ +import matplotlib.pyplot as plt +import numpy as np +from IPython import embed + +def create_data(): + m = 0.75 + n= -30 + x = np.arange(0.,101., 2.5) + y = m * x + n; + noise = np.random.randn(len(x))*15 + y += noise + return x, y, m, n + + +def plot_data(x, y): + plt.xkcd() + plt.scatter(x, y, marker='o', color='dodgerblue', s=40) + plt.xlabel("Input x") + plt.ylabel("Output y") + plt.xlim([-2.5, 102.5]) + ax = plt.gca() + ax.spines["right"].set_visible(False) + ax.spines["top"].set_visible(False) + ax.yaxis.set_ticks_position('left') + ax.xaxis.set_ticks_position('bottom') + ax.xaxis.linewidth=1.5 + ax.yaxis.linewidth=1.5 + ax.tick_params(direction="out", width=1.25) + ax.tick_params(direction="out", width=1.25) + fig = plt.gcf() + fig.set_facecolor("white") + fig.set_size_inches(3., 3.) + fig.savefig("figures/lin_regress.pdf") + plt.close() + + +def plot_data_slopes(x, y, m, n): + plt.xkcd() + plt.scatter(x, y, marker='o', color='dodgerblue', s=40) + for i in np.linspace(m/4, m*1.5, 5): + plt.plot(x, i*x+n, color="r", lw=2) + + plt.xlabel("Input x") + plt.ylabel("Output y") + plt.xlim([-2.5, 102.5]) + ax = plt.gca() + ax.spines["right"].set_visible(False) + ax.spines["top"].set_visible(False) + ax.yaxis.set_ticks_position('left') + ax.xaxis.set_ticks_position('bottom') + ax.xaxis.linewidth=1.5 + ax.yaxis.linewidth=1.5 + ax.tick_params(direction="out", width=1.25) + ax.tick_params(direction="out", width=1.25) + fig = plt.gcf() + fig.set_facecolor("white") + fig.set_size_inches(3., 3.) + fig.savefig("figures/lin_regress_slope.pdf") + plt.close() + + +def plot_data_intercepts(x, y, m, n): + plt.xkcd() + plt.scatter(x, y, marker='o', color='dodgerblue', s=40) + for i in np.linspace(n-n/2, n+n/2, 5): + plt.plot(x, m * x + i, color="r", lw=2) + + plt.xlabel("Input x") + plt.ylabel("Output y") + plt.xlim([-2.5, 102.5]) + ax = plt.gca() + ax.spines["right"].set_visible(False) + ax.spines["top"].set_visible(False) + ax.yaxis.set_ticks_position('left') + ax.xaxis.set_ticks_position('bottom') + ax.xaxis.linewidth=1.5 + ax.yaxis.linewidth=1.5 + ax.tick_params(direction="out", width=1.25) + ax.tick_params(direction="out", width=1.25) + fig = plt.gcf() + fig.set_facecolor("white") + fig.set_size_inches(3., 3.) + fig.savefig("figures/lin_regress_intercept.pdf") + plt.close() + + +if __name__ == "__main__": + x, y, m, n = create_data() + plot_data(x,y) + plot_data_slopes(x,y,m,n) + plot_data_intercepts(x,y,m,n)