python绘制动态曲线教程

所属分类: 脚本专栏 / python 阅读数: 1500
收藏 0 赞 0 分享

从txt种获取数据 并且通过动态曲线显示

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
import time 
# Fixing random state for reproducibility 
np.random.seed(196) 
path = "feed.txt" 
file = open(path, 'r') 
data = []
for line in file.readlines(): 
 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) 
plt.grid(True) 
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.grid()
 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绘制动态曲线教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

使用Python写一个量化股票提醒系统

这篇文章主要介绍了小白用Python写了一个股票提醒系统,迷你版量化系统,完美的实现了实时提醒功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python绘制的二项分布概率图示例

这篇文章主要介绍了Python绘制的二项分布概率图,涉及Python基于numpy、math的数值运算及matplotlib图形绘制相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Python Learning 列表的更多操作及示例代码

这篇文章主要介绍了Python Learning-列表的更多操作,需要的朋友可以参考下
收藏 0 赞 0 分享

关于python列表增加元素的三种操作方法

这篇文章主要介绍了关于python列表增加元素的几种操作方法,主要有insert方法,extend方法和append方法,每种方法给大家介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享

如何在python字符串中输入纯粹的{}

这篇文章主要介绍了如何在python字符串中输入纯粹的{}以及python字符串连接的三种方法,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈Django的缓存机制

这篇文章主要介绍了浅谈Django的缓存机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Django 限制用户访问频率的中间件的实现

这篇文章主要介绍了Django 限制用户访问频率的中间件的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

示例详解Python3 or Python2 两者之间的差异

这篇文章主要介绍了Python3 or Python2?示例详解两者之间的差异,在本文中给大家介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享

Python wxpython模块响应鼠标拖动事件操作示例

这篇文章主要介绍了Python wxpython模块响应鼠标拖动事件操作,结合实例形式分析了Python使用wxpython模块创建窗口、绑定事件及相应鼠标事件相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

使用Python实现一个栈判断括号是否平衡

栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top)。这篇文章主要介绍了使用Python实现一个栈判断括号是否平衡,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多