matplotlib作业

Exercise 11.1: Plotting a function
Plot the function
f ( x ) = sin 2 ( x - 2) e - x 2

over the interval [0; 2]. Add proper axis labels, a title, etc

import numpy as np
import matplotlib . pyplot as plt

fig, ax = plt.subplots()
x = np. linspace (0 , 2, 1000)

y = np.power(np.sin(x-2), 2) * np.exp(-x*x)
plt . plot (x , y)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('my title')
plt . show()


Exercise 11.2: Data 
Create a data matrix X with 20 observations of 10 variables. Generate a vector b with parameters Then generate the response vector y = Xb+z where z is a vector with standard normally distributed variables. Now (by only using y and X), find an estimator for b, by solving 
^b = arg minb||Xby||2b||Xb−y||2 

Plot the true parameters b and estimated parameters ˆb. See Figure 1 for an example plot.

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import minimize 

def func(b0, X, y):  
    return np.linalg.norm(np.dot(X, b0) - y, ord=2)  

X = np.random.normal(size = (20,10))
b = np.random.normal(size = (10, 1))
z = np.random.normal(size = (20,1))
y = np.dot(X, b) + z

b0 = np.zeros((10,1))
p = minimize(func, b0, args=(X,y))

b1 = p.x
x1 = np.linspace(0, 9, 10)
fig = plt.figure()
p1 = plt.scatter(x1, b, c = 'c')
p2 = plt.scatter(x1, b1, c = 'm')

plt.xlabel('index')  
plt.ylabel('value')  
plt.legend([p1, p2], ['Ture coeffiients', 'Estimated coefficients'])  
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 matplotlib.mlab as mlab 

data = np.random.randn(10000) 
num_bins = 25 
n, bins, patches = plt.hist(data, 25, normed=True, facecolor='g', alpha=0.5) 
y = mlab.normpdf(bins, 0, 1) 
plt.plot(bins, y, 'b--') 
plt.title(r'standard normal distribution') 
plt.show()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值