python绘制动态曲线教程从txt种获取数据并且通过动态曲线显⽰
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import time
# Fixing random state for reproducibilitypython安装教程非常详细
np.random.seed(196)
path = ""
file = open(path, 'r')
data = []
for line adlines():
lineArr = line.strip().split()
data.append(int(lineArr[0]))
xdata = np.arange(0,len(data))
#初始数据绘图
dis = np.zeros(40)
dis2 = dis
fig, ax = plt.subplots()
line, = ax.plot(dis)
ax.set_ylim(0, 100)
ax.set_ylabel("distance: m")
ax.set_xlabel("time")
def update(frame):
global dis
global dis2
global line
#读⼊模拟
a = frame
time.sleep(np.random.rand()/10)
#绘图数据⽣成
dis[0:-1] = dis2[1:]
dis[-1] = a
dis2 = dis
#绘图
line.set_ydata(dis)
#颜⾊设置
plt.setp(line, 'color', 'b', 'linewidth', 2.0)
return line
ani = animation.FuncAnimation(fig, update,frames=data, interval=10)
plt.show()
输出:
补充拓展:Python绘制mes曲线实例
mes曲线:累计误差曲线。⼀般⽤于测试⽣成的关键点与标定的关键点间的差异情况,差异⼀般是指两点间的欧⽒距离。标记点坐标 p_g(x,y)
预测点坐标 p_t(x,y)
dist(p_g,p_t)可以计算两点间的欧⽒距离。
def dist(point1,point2):
return ((point1[0] - point2[0]) ** 2 + (point1[1] - point2[1]) ** 2) ** 0.5
在⼈脸的关键点检测中,dist()计算的距离/双眼间距离进⾏归⼀化。将归⼀化后的值append到MSE,调⽤drawCDFSingle(MSE)即可看到累计误差曲线。
def drawCDFSingle(MSE):
plotDataset = [[], []]
plt.xlabel("pixel error")
plt.ylabel("Fraction of number of landmarks")
plt.title('CDF')
for i in range(len(MSE[0])):
sumnum = 0
mse_point = [x[i] for x in MSE]
mse_point.sort()
plotDataset[0]=[]
plotDataset[1]=[]
for t in range(len(mse_point)):
plotDataset[0].append(float(t+1)/len(mse_point))
# sumnum=sumnum+float(mse_point[t])
plotDataset[1].append(float(mse_point[t]))
plt.plot(plotDataset[1],plotDataset[0] , color[i%len(color)]+linestyle[i%len(linestyle)], linewidth=2, label=i)
plt.legend() # make legend
plt.show()
以上这篇python绘制动态曲线教程就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论