Exercise 11.1: Plotting a function
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import math
f, ax = plt.subplots(1, 1, figsize=(5,4))
x = np.linspace(0, 2, 800)
y = [pow(math.sin(z-2), 2)* pow(math.e, -z*z) for z in x]
ax.plot(x, y)
ax.set_xlim((0, 2))
ax.set_ylim((0, 1))
ax.set_xlabel(' x ')
ax.set_ylabel(' y ')
ax.set_title('ex1')
plt.tight_layout()
plt.show()
plt.savefig('line_plot_plus.png') #保存为图片
结果如图:
Exercise 11.2: Data
代码:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
X = np.random.random_sample((20, 10)) * 10
b = np.random.random(10) * 3 - 1.5
z = np.random.normal((20,))
y = X.dot(b) + z
b_ = np.array(np.linalg.lstsq(X, y, rcond=-1)[0])
x = np.arange(0, 10)
f, ax = plt.subplots()
ax.set_xlim(0, 19)
ax.set_ylim(-1.5, 2)
ax.set_xlabel("index")
ax.set_ylabel("value")
ax.plot(x, b, 'rx', label='True coefficients')
ax.plot(x, b_, 'bo', label='Estimated coefficients')
plt.hlines(0, 0, 19, colors='k', linestyle="--")
plt.tight_layout()
plt.show()
结果:
Exercise 11.3: Histogram and density estimation
Generate a vector z of 10000 observations from your favorite exotic distribution. Then make a plot that shows a histogram of z (with 25 bins), along with an estimate for the density, using a Gaussian kernel density estimator (see scipy.stats). See Figure 2 for an example plot.
代码:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
z = np.random.normal(0.5, 1, size=(10000,))
sns.distplot(z, bins=25,kde_kws={'color':'g'})
plt.show()
结果: