一、參數(shù)介紹
plt.errorbar是matplotlib庫(kù)中的一個(gè)函數(shù),用于繪制帶誤差線(xiàn)的線(xiàn)圖。它的主要參數(shù)有:
1. x、y
指定數(shù)據(jù)的橫縱坐標(biāo),必須是數(shù)組或者是標(biāo)量。
2. xerr、yerr
指定x和y的誤差,可以是標(biāo)量、數(shù)組或者是None。當(dāng)xerr或yerr為空時(shí),將不會(huì)繪制誤差條。
3. fmt
繪制線(xiàn)和誤差線(xiàn)的格式字符串,用字符串中的字符表示線(xiàn)條的顏色、線(xiàn)型、標(biāo)記樣式等。默認(rèn)為線(xiàn)條、圓圈標(biāo)記和相同的顏色。
4. ecolor
誤差線(xiàn)的顏色,可以為標(biāo)量和數(shù)組。默認(rèn)為與線(xiàn)條顏色相同。
5. capsize
指定誤差線(xiàn)上下端點(diǎn)的大小,默認(rèn)為無(wú)。當(dāng)capsize非零時(shí),將在誤差線(xiàn)上下兩側(cè)繪制小直線(xiàn)。
二、plt.errorbar設(shè)置不同顏色
plt.errorbar函數(shù)可以通過(guò)fmt參數(shù)來(lái)設(shè)置線(xiàn)條的顏色、線(xiàn)型、標(biāo)記樣式等,但有時(shí)候我們需要更加定制化的色彩搭配。在這種情況下,我們可以通過(guò)指定不同的ecolor參數(shù)值來(lái)繪制不同顏色的誤差線(xiàn)。
例如,我們要在一幅圖中同時(shí)繪制三組數(shù)據(jù)的線(xiàn)條和誤差線(xiàn),并為它們指定不同的顏色。我們可以按照下面的代碼來(lái)實(shí)現(xiàn):
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)
y1 = np.array([1, 2, 3, 4, 5])
y2 = y1 * 2
y3 = y1[::-1]
fig, ax = plt.subplots()
ax.errorbar(x, y1, yerr=0.5, fmt='o', ecolor='red', capsize=2)
ax.errorbar(x, y2, yerr=0.5, fmt='o', ecolor='blue', capsize=2)
ax.errorbar(x, y3, yerr=0.5, fmt='o', ecolor='green', capsize=2)
plt.show()
在上面的代碼中,我們首先生成了三個(gè)不同的y數(shù)據(jù)(y1、y2、y3),然后定義了一個(gè)figure對(duì)象和一個(gè)axes對(duì)象。接下來(lái),我們依次調(diào)用三次errorbar函數(shù),分別繪制三個(gè)數(shù)據(jù)集的線(xiàn)條和誤差線(xiàn)。每次調(diào)用errorbar函數(shù)時(shí),我們都為其指定了不同的ecolor參數(shù)值,分別為'red'、'blue'和'green'。最后,將圖形顯示出來(lái)。
三、使用plt.errorbar繪制多維誤差線(xiàn)圖
有時(shí)候,我們需要在一幅圖中同時(shí)繪制多種類(lèi)型的誤差線(xiàn),如水平誤差線(xiàn)、垂直誤差線(xiàn)、對(duì)稱(chēng)誤差線(xiàn)等。此時(shí),我們可以使用plt.errorbar函數(shù)的xerr、yerr參數(shù)同時(shí)傳遞多維數(shù)據(jù)。
例如,我們要在一幅圖中繪制含有水平錯(cuò)誤線(xiàn)、豎直錯(cuò)誤線(xiàn)和對(duì)稱(chēng)錯(cuò)誤線(xiàn)的散點(diǎn)圖,可以按照下面的代碼來(lái)實(shí)現(xiàn):
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)
y = np.array([1, 2, 3, 4, 5])
xerr = yerr = np.array([0.3, 0.2, 0.4, 0.1, 0.5])
verterr = np.array([0.2, 0.3, 0.5, 0.1, 0.4])
horerr = np.array([0.1, 0.2, 0.3, 0.2, 0.4])
fig, ax = plt.subplots()
ax.errorbar(x, y, xerr=xerr, yerr=yerr, fmt='o', ecolor='black', capsize=2)
ax.errorbar(x, y, xerr=horerr, yerr=verterr, fmt='o', ecolor='red', capsize=2)
plt.show()
在上面的代碼中,我們首先生成了一個(gè)x數(shù)組和一個(gè)y數(shù)組,然后生成了三個(gè)誤差數(shù)組。xerr和yerr數(shù)組表示的是對(duì)稱(chēng)誤差,即在x和y方向的誤差都是一樣的;verterr和horerr數(shù)組分別表示垂直和水平方向的誤差。接下來(lái),我們?cè)谕粋€(gè)axes對(duì)象上繪制了兩組errorbar函數(shù),第一組表示對(duì)稱(chēng)誤差,第二組表示水平和垂直方向的誤差。最后,將結(jié)果圖形顯示出來(lái)。