我就廢話不多說啦,還是直接看**吧!
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(1, 100, 20)
y = x *2 +3
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x, y)
plt.ion()
for i in range(10):
y = x*i*0.1 + i
try:
ax.lines.remove(lines[0])
except exception:
pass
lines = ax.plot(x ,y)
plt.pause(0.1)
補充知識:用python的matplotlib庫動態顯示不斷增長的資料
"""created on mon dec 07 16:34:10 2015
@author: superwang
tezxq"""
import matplotlib.pyplot as plt
import numpy as np
figfig2,ax2=plt.subplots()
y1=y2=
for i in range(50):
y1.append(np.sin(i))
y2.append(np.cos(i))
ax.cla()
ax.set_title("loss")
ax.set_xlabel("iteration")
ax.set_ylabel("loss")
ax.set_xlim(0,55)
ax.set_ylim(-1,1)
ax.grid()
ax.plot(y1,label='train')
ax.plot(y2,label='test')
ax.legend(loc='best')
ax2.cla()
ax2.set_title("loss")
ax2.set_xlabel("iteration")
ax2.set_ylabel("loss")
ax2.set_xlim(0,55)
ax2.set_ylim(-1,1)
ax2.grid()
ax2.plot(y1,label='train')
ax2.plot(y2,label='test')
ax2.legend(loc='best')
plt.pause(1)
要解決的問題如標題所示,原理很簡單,就是當資料增長時,不斷清空以前的繪畫內容,然後把現有的資料重新畫出來(資料是胡亂生成的)。
具體過程如下:
fig,ax=plt.subplots() 產生乙個figure物件和乙個axis物件。figure相當於乙個視窗,而axis相當於乙個畫布。此句也可以用兩句生成,即fig=plt.figure(num),括號中的引數是figure的id,如果只需建立乙個figure物件,那麼可以省略。然後ax=fig.subplot(1,1,1),subplot()的具體用法可以去google或百度一下。ax.cla()就是在新資料到來時,先把之前的繪製的內容清空,接下來,ax.set_title(「loss」),ax.set_xlabel(「iteration」),ax.set_ylabel(「loss」)都很簡單,見名知意。ax.set_xlim(0,55),ax.set_ylim(-1,1)分別用來設定x軸和y軸的兩個端點。ax.grid()給畫布加上網格。ax.plot(y1,label='train'),ax.plot(y2,label='test')這兩句是實際的繪製命令,其中,引數label是為以後生成圖例用的。ax2.legend(loc='best')用來生成圖例,loc引數代表圖例位置location,而value:『best'是其中的一種選擇,除此之外,還有左上角等其他選項。最後,plt.pause(1)是為了顯示上更直觀,故意每繪製一次,暫停1秒,注意,這裡的單位是秒。如果是實際的應用,而資料生成的過程又比較慢,此句完全可以省略。
這段**中建立了兩個視窗,在實驗過程中,我發現只能有乙個視窗被選中,即用滑鼠點選哪個視窗,哪個視窗會動態地顯示繪畫過程,而另乙個保持不動。
繪畫過程截圖如下:
本文標題: 使用matplotlib動態重新整理指定曲線例項
本文位址: /jiaoben/python/309528.html
matplotlib 基本使用
1,plot import matplotlib.pyplot as plt import numpy as np numpy庫,製作資料 x np.linspace 1,1,50 y 2 x 1 plt.plot x,y plot.show linspace x,y,n 範圍 x,y n個點 2,...
matplotlib的基本使用
容器層 1 canvas 畫布,位於最底層,使用者一般接觸不到 2 figure 圖,建立在canvas之上 3 axes 座標系 繪圖區,建立在figure之上,圖形繪製在這個範圍 輔助顯示層 最好放在影象層之後編寫 1 起到輔助作用,提高圖的可讀性 2 網格線,圖例,x y軸的標籤,圖的標籤,刻...
matplotlib的使用記錄
隨手記點東西,想到什麼補充什麼。子圖t1 np.arange 0,5,0.1 t2 np.arange 0,5,0.02 plt.figure 1 建立乙個圖,名為1 plt.subplot 2,2,1 在圖1裡面定義2行2列,一共4個子圖位置,取第1個位置 plt.plot t2,np.cos 2...