Matplotlib學習筆記 繪製誤差線

2021-08-24 18:01:28 字數 1878 閱讀 6490

對任何一種科學測量方法來說,準確的衡量資料誤差都是無比重要的事情,甚至比資料本身還重要.在資料視覺化的結果中用圖形將誤差有效的顯示出來,就可以提供更充分的資訊.

基本誤差線
#以下**在notebook中執行

%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 50)

dy = 0.8

y = np.sin(x) + 0.8 * np.random.randn(50)

#fmt是一種控制線條和點的外觀的**格式,語法與plt.plot的縮寫**一樣.

plt.errorbar(x, y, yerr=dy, fmt='.k')

除了基本選項之外,errorbar還有許多改善結果的選項.通過這些額外的選項,你可以輕鬆自定義誤差線圖形的繪圖風格.一般來說,讓誤差線的顏色比資料點的顏色淺一效果會非常好,尤其是在那些比較密集的圖形中.

連續誤差

有時候可能需要顯示連續變數的誤差。matplotlib通過plt.plot和plt.fill_between來實現。下面通過scikit-learn程式庫的api裡面的高斯過程回歸方法來演示。這是用一種非常靈活的非引數方程對帶有不確定性的連續測量變數進行擬合的方法。

from sklearn.gaussian_process import gaussianprocess

#定義模型和要畫的資料

model = lambda x: x * np.sin(x)

xdata = np.array([1,3,5,6,8])

ydata = model(xdata)

#計算高斯過程擬合結果

gp = gaussianprocess(corr='cubic', theta0=1e-2, thetal=1e-4, thetau=1e-1,

random_start=100)

gp.fit(xdata[:, np.newaxis], ydata)

xfit = np.linspace(0, 10, 1000)

yfit, mse = gp.predict(xfit[:, np.newaxis], eval_mse=true)

dyfit = 2 * np.sqrt(mse) #s*sigma~95%的置信區間

#將上面的引數傳入plt.errorbar函式,我們不是真的要為1000個資料點畫上1000條誤差線,相反,可以通過plt.fill_between函式中設定顏色來表示連續誤差線

plt.plot(xdata, ydata, 'or')

plt.plot(xfit, yfit, '-', color='gray')

#顏色為灰色,設定透明度為0.2

Matplotlib學習筆記

在最開始接觸python科學計算的時候,就知道了matplotlib這個繪相簿。個人是比較喜歡這種視覺化的工具,照我看,gui這種理念幾乎是劃時代的。如果說numpy是用來處理資料,那麼matplotlib就是用來展示資料的,抽象的資料,以圖表的形式展示出來,無論是對自己,還是對看到的人,接受起來都...

Matplotlib學習筆記(三)

import matplotlib.pyplot as plt import numpy as np x np.linspace 3,3,50 y 2 x 1 plt.figure num 1,figsize 8,5 plt.plot x,y ax plt.gca ax.spines right s...

Matplotlib學習筆記(四)

import matplotlib.pyplot as plt import numpy as np n 1024 x np.random.normal 0,1,n y np.random.normal 0,1,n t np.arctan2 y,x for color value plt.scatt...