欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python用matplotlib画图例子(3)

程序员文章站 2022-07-13 09:14:48
...

背景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

python用matplotlib画图例子(3)

背景2

画一个图示的图形块patch。

结果2

python用matplotlib画图例子(3)

代码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')
相关标签: python 动画