高级编程技术作业【matplotlib的简单使用】

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

扫描二维码关注公众号,回复: 1651094 查看本文章


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


猜你喜欢

转载自blog.csdn.net/zero_s_qiu/article/details/80435093