python繪製動態曲線教程
阿新 • • 發佈:2020-02-24
從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繪製動態曲線教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。