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. 运行结果