Matplotlib
下面为作业文档中matplotlib这一章的内容。
Exercise 11.1
1. 涉及函数
import matplotlib as plt plt.plot(x, y) # 生成 向量x与y组成的坐标为 (x, y) 的点 plt.show() # 绘制图像 plt.xlabel('x') # 使用xlabel添加x轴标签 plt.xlabel('y') # 使用ylabel添加y轴标签 plt.title('hahaha') # 使用title添加图像标题
2. 代码
import numpy as np import matplotlib.pyplot as plt import math x = np.linspace(0, 2) y = [(math.sin(i-2) ** 2) * math.exp(-(i**2)) for i in x] plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title("f(x) = sin^2(x-2) * exp( -(x**2) )") plt.show()
3. 运行结果
Exercise 11.2
1. 代码
import numpy as np from scipy.optimize import leastsq import matplotlib.pyplot as plt X = np.random.randint(1, 10, size = (20, 10)) b = np.random.randint(1, 10, size = (10, 1)) z = np.random.normal(size = (20,1)) y = np.dot(X, b) + z def least(X, y): G = np.dot(X.T, X) B = np.dot(X.T, y) ans = np.linalg.solve(G, B) return ans s = least(X, y) print(s) index = np.linspace(1, 10, 10) plt.scatter(index, b, color="red", marker = 'x', label = "True coefficients", linewidth = 3) plt.scatter(index, s, color="blue", marker = 'o', label = "Estimated coefficients", linewidth = 3) plt.legend() plt.show()2. 运行结果
Exercise 11.3
1. 涉及函数
stats.norm.pdf可得到正态分布的概率密度函数;
用.rvs函数模拟一个二项随机变量,其中参数size指定你要进行模拟的次数;
用plt.hist绘制直方图
2. 代码
import scipy as sp from scipy import stats import matplotlib.pyplot as plt import numpy as np x = np.linspace(-5, 15, 50) # 绘制正态分布 plt.plot(x, sp.stats.norm.pdf(x=x, loc=5, scale=2)) # 叠加直方图 plt.hist(sp.stats.norm.rvs(loc=5, scale=2, size=10000), bins=25, density =True, color='green', alpha=0.5) plt.show()
2. 运行结果