背景1
每50毫秒产生一个标准正态随机数与之前的数进行累加。
代码1
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
ax = fig.add_subplot(111)
#初始漫步数
N = 30
#最大漫步数
MaxN = 500
x = np.random.randn(N).cumsum()
pdata, = ax.plot(x,'r')
#固定x轴,y轴的范围
ax.set_xlim(0,MaxN)
ax.set_ylim(-50,50)
ax.set_title('$Random\ walk$')
#定义更新规则
#data是生成器的返回值
def update(data):
x = pdata.get_xdata()
y = pdata.get_ydata()
x = np.hstack((x,len(x)))
y = np.hstack((y,y[-1]+data))
pdata.set_xdata(x)
pdata.set_ydata(y)
return pdata
#生成器
def generated():
n = 1
while n<MaxN-N:
yield np.random.randn()
anim = animation.FuncAnimation(fig, update, generated, interval=50)
plt.show()
结果1
背景2
画一个图示的图形块patch。
结果2
代码2
import numpy as np
import matplotlib.pyplot as plt
import math
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(1,1,1)
#多边形:各点
pgo = plt.Polygon([[0.,0.4],[0.4,0.],[.8,0.4],[0.4,0.8]],color='#00F5FF',alpha=0.2)
#圆形
cc = plt.Circle((.4,.4),math.sqrt(0.08),color='#D02090',alpha=1)
#矩形:顶点,宽高
re1 = plt.Rectangle((.2,.2),.2,.2,color = 'r')
re2 = plt.Rectangle((.6,.2),-0.2,.2,color = 'y')
re3 = plt.Rectangle((.2,.6),0.2,-.2,color = 'g')
re4 = plt.Rectangle((.6,.6),-0.2,-.2,color = 'b')
#圆形:圆心,半径
c1 = plt.Circle((.3,.4),.05,color='g',alpha=1)
c2 = plt.Circle((.4,.3),.05,color='r',alpha=1)
c3 = plt.Circle((.5,.4),.05,color='y',alpha=1)
c4 = plt.Circle((.4,.5),.05,color='b',alpha=1)
ax.add_patch(cc)
ax.add_patch(pgo)
ax.add_patch(re1)
ax.add_patch(re2)
ax.add_patch(re3)
ax.add_patch(re4)
ax.add_patch(c1)
ax.add_patch(c2)
ax.add_patch(c3)
ax.add_patch(c4)
#不显示坐标轴
plt.axis("off")
#显示图像
plt.show()
#保存图片
#dpi 图像分辨率
#bbox_inches 图片需要保存的部分,'tight'将尝试剪除空白部分
fig.savefig(r"C:\Users\tinysoft\Desktop\gg3.png",dpi = 400)#,bbox_inches='tight')