代码拉取完成,页面将自动刷新
#Task1-人口变化图
'''import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示,设置为黑体
plt.rcParams['axes.unicode_minus'] = False #解决负号无法显示
x = np.arange(1960,2022,1)
y = [6.62,6.58,6.72,6.91,7.04,7.25,7.45,7.63,7.85,8.06,8.29,8.52,8.71,8.92,9.08,9.24,9.37,9.49,9.62,9.75,9.87,10.00,10.16,10.30,10.43,10.58,10.75,10.93,11.10,11.27,11.43,11.58,11.71,11.85,11.98,12.11,12.23,12.36,12.47,12.57,12.67,12.76,12.84,12.92,12.99,13.07,13.14,13.21,13.28,13.34,13.40,13.47,13.54,13.60,13.67,13.74,13.82,13.90,13.95,14.05,14.15,14.22]
plt.plot(x,y)
plt.title('我国1960年~2021年人口数量变化图')
plt.xlabel('时间/年')
plt.ylabel('人口数量/单位:亿人')
plt.show()'''
#Task2-z关于x,y函数曲面图(失败之作)
'''
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(-2, 2, 1000)
y = np.linspace(-2, 2, 1000)
z = np.sqrt(x**2 + 2*x*y + 2*y**2)
X, Y = np.meshgrid(x, y) #从坐标向量中返回坐标点
Z=np.expand_dims(z,axis=0) #增加维度 不加会报错说Argument Z must be 2-dimensional.
fig = plt.figure("The figure of the function") #制作画布
#ax3d = Axes3D(fig) #将图像变为3D
ax3d = plt.axes(projection='3d') #将图像变为3D 这个写法不会产生警告
#ax3d = fig.add_subplot(111,projection='3d') #将图像变为3D 这个写法不会产生警告 还能画多个子图
ax3d.plot_surface(X, Y, Z, rstride = 10, cstride = 10, cmap = plt.get_cmap('rainbow'))
#rstride:行之间的跨度(越小颜色过渡越流畅) cstride:列之间的跨度(越小颜色过渡越流畅) cmap是颜色映射表(rainbow还可以写成jet、coolwarm等)
plt.title("z = sqrt(x^2+2xy+2y^2)")
ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")
plt.show()
'''
#Task2-z关于x,y函数曲面图
'''
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示,设置为黑体
plt.rcParams['axes.unicode_minus'] = False #解决负号无法显示
fig = plt.figure("Z函数的图像")
ax = plt.axes(projection='3d') #将图像变为3D 这个写法不会产生警告
#ax3d = Axes3D(fig) #将图像变为3D 会产生警告
#ax3d = fig.add_subplot(111,projection='3d') #将图像变为3D 这个写法不会产生警告 还能画多个子图 111:1行1列的第1个位置
x = np.arange(-2, 2, 0.1)
y = np.arange(-2, 2, 0.1)
X, Y = np.meshgrid(x, y) #从坐标向量中返回坐标点
Z = np.sqrt(X**2 + 2*Y**2 + 2*X*Y)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.rainbow) #或者camp=plt.get_camp('rainbow')
#rstride:行之间的跨度(越小颜色过渡越流畅) cstride:列之间的跨度(越小颜色过渡越流畅) cmap是颜色映射表(rainbow还可以写成jet、hot等)
#ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.jet) #向xoy平面投影
#ax.set_zlim(-2,2) #Z轴的跨度
plt.title("z = sqrt(x^2+2xy+2y^2)的函数曲面图像")
ax.set_xlabel("X轴")
ax.set_ylabel("Y轴")
ax.set_zlabel("Z轴")
plt.annotate('(0,0,0)为函数最小值点', xy=(0,0),xytext=(0,0))
plt.show()
'''
#Task3-大数定律和中心极限定理
# 中心极限定理:
# 设从均值为μ、方差为σ^2;(有限)的任意一个总体中抽取样本量为n的样本,当n充分大时,样本均值的抽样分布近似服从均值为μ、方差为σ^2/n 的正态分布。
'''import numpy as np
import matplotlib.pyplot as plt
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示,设置为黑体
plt.rcParams['axes.unicode_minus'] = False #解决负号无法显示
u = 0 # 均值μ
sig = math.sqrt(0.5) # 标准差δ
t = 10000
a = np.zeros(10000) #返回来一个给定形状和类型的用0填充的数组
for i in range(t):
a += np.random.uniform(-1, 1, 10000) # random:返回随机的浮点数,uniform:均匀分布
# 从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.
a = (a - u)/(sig/math.sqrt(t))
plt.hist(a, bins=30, color='b', alpha=0.75) # hist:绘制直方图
plt.title("中心极限定理")
plt.xlabel("X轴")
plt.ylabel("Y轴/样本密度")
plt.show()
#大数定律:
# 是说如果统计数据足够大,那么事物出现的频率就能无限接近他的期望值。
# n只要越来越大,我把这n个独立同分布的数加起来去除以n得到的这个样本均值(也是一个随机变量)会依概率收敛到真值u,但是样本均值的分布是怎样的我们不知道。
import numpy as np
from numpy import random as nprd
True_P=0.5
def sampling(N):
## 产生Bernouli样本
x=nprd.rand(N)<True_P
return x
M=10000 #模拟次数
xbar=np.zeros(M)
N=np.array([i+1 for i in range(M)])
x=sampling(M)
for i in range(M):
if i==0:
xbar[i]=x[i]
else:
xbar[i]=(x[i]+xbar[i-1]*i)/(i+1)
## 导入matplotlib
import matplotlib.pyplot as plt
#plt.rcParams['figure.figsize'] = (6, 6) 设定画布大小
plt.plot(N,xbar,label=r'$\bar{x}$',color='pink') ## xbar
xtrue=np.ones(M)*True_P
plt.plot(N,xtrue,label=r'$0.5$',color='black') ## true xbar
plt.title("大数定律")
plt.xlabel('N')
plt.ylabel(r'$\bar{x}$')
plt.legend(loc='upper right', frameon=True)
plt.show()'''
#test
'''import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示,设置为黑体
plt.rcParams['axes.unicode_minus'] = False #解决负号无法显示
fig = plt.figure("y函数的图像")
x = np.arange(-5, 5, 0.1)
y1 = (x**3 - 3*x + 2)
y2 = (x**3 - x**2 - x + 1)
ax1=plt.subplot(1,2,1)
plt.plot(x,y1)
plt.title("y1关于x的函数图像")
plt.xlabel("x轴")
plt.ylabel("y轴")
ax2=plt.subplot(1,2,2)
plt.plot(x,y2)
plt.title("y2关于x的函数图像")
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()'''
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。