python绘制插图

懒人永不更新

绘制流程 & 直线/虚线

1.高斯分布

y = 1 2 π σ exp ⁡ { ( x − μ ) 2 2 σ 2 } y=\frac{1}{\sqrt{2 \pi}\sigma} \exp \left \{ \frac{(x-\mu)^2}{2 \sigma^2} \right \} y=2π σ1exp{2σ2(xμ)2}

import numpy as np
import matplotlib.pyplot as plt
import math
 
  
def Gaussian_distribution(x, mean, sigma):
    return np.exp(-1*((x-mean)**2)/(2*(sigma**2)))/(math.sqrt(2*np.pi) * sigma)

#均值为0,方差为1的高斯分布
mean, sigma = 0, 1
#在-3到3之间采样30个点
x = np.linspace(mean - 3*sigma, mean + 3*sigma, 100)
y = Guassian_distribution(x, mean, sigma)

#绘制曲线
plt.plot(x, y, 'b')

#显示曲线
plt.show()

在这里插入图片描述

2.sigmoid

绘制曲线的流程
绘制直线/虚线

y = 1 1 + e − x y=\frac{1}{1+e^{-x}} y=1+ex1

import numpy as np
import matplotlib.pyplot as plt
   
#sigmoid向左偏移5
def sigmoid(x):
	return 1/(1+np.exp(-x+5))

#在-1到15之间采样30个点
x = np.linspace(-1,15,30)
y = sigmoid(x)

#绘制sigmoid
plt.plot(x,y)

#print(sigmoid(4))
plt.vlines(4,0,sigmoid(4),'black','--')
plt.hlines(sigmoid(4),-1,4,'black','--')

绘制虚线
#print(sigmoid(5.5))
plt.vlines(5.5,0,sigmoid(5.5),'black','--')
plt.hlines(sigmoid(5.5),-1,5.5,'black','--')

#print(sigmoid(6.1))
plt.vlines(6.1,0,sigmoid(6.1),'black','--')
plt.hlines(sigmoid(6.1),-1,6.1,'black','--')

plt.show()

在这里插入图片描述

1.写出表达式
2.区间
3.调用函数
4.绘制曲线
5.显示图像

直线 & 填充颜色 & 添加文本

3.拒绝采样

新增技能:
直线
填充颜色
添加文本

import numpy as np
import matplotlib.pyplot as plt
import math
 
  
def q_z(x, mean, sigma):
    return np.exp(-1*((x-mean)**2)/(2*(sigma**2)))/(math.sqrt(2*np.pi) * sigma)

def p_z(x):
    return 0.3*np.exp(-(x)**2/0.4) +0.8* np.exp(-(x-1.8)**2/0.6) +0.5* np.exp(-(x-3.1)**2/0.3)

#均值为0,方差为1的高斯分布
mean, sigma = 1.6, 1.5

M = 5
x = np.linspace(-2, 5, 100)
y = M * q_z(x, mean, sigma)

plt.plot(x,p_z(x),color = "black")

plt.plot(x, y, 'b')

#绘制直线,注意坐标点plt.plot([x1,x2],[y1,y2])
plt.plot([0,0],[0,p_z(0)],color = "g")
plt.plot([0,0],[p_z(0),M * q_z(0, mean, sigma)],color = "r")

#填充颜色
plt.fill_between(x,y,p_z(x),color = (0.7,0.7,0.7))

#添加文本
plt.annotate('$p(z)$',xy=(0.,0),xytext=(2,0.2),fontsize=15)
plt.annotate('$Mq(z)$',xy=(0.,0),xytext=(1.3,1),fontsize=15)
plt.annotate('$reject$',xy=(0.,0),xytext=(-1.3,0.5),fontsize=10)
plt.annotate('$accept$',xy=(0.,0),xytext=(-1.3,0.1),fontsize=10)

plt.show()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值